2017-09-21 2 views
-2

// i want condition using Object String.(Sorry, English little)どのようにJavaScriptの場合(変数条件[オブジェクトの文字列])

'EX')

var info1 = [ 
    {orderNum : 001 , state : use , check : O } 
    {orderNum : 002 , state : use , check : 1} 
    {orderNum : 003 , state : disuse , check : 0} 
]; 
var info2 = [ 
    {orderNum : 001 , state : use , check : O } 
    {orderNum : 002 , state : use , check : 1} 
    {orderNum : 003 , state : use , check : 0} 
    {orderNum : 004 , state : disuse , check : 0} 

]; 

var condition = '(info1[i].'+inputText+' == info2[j].'+inputText')'; 

console.log(condition) 

***result**** ==> (info1[i].orderNum == info1[j].orderNum) && (info1[i].state == info1[j].state);

--------------------------------------------------------------------------------

var equalInfo1 = []; 
var equalInfo2 = []; 
var differInfo1 = []; 
var differInfo2 = []; 

for(var i=0: i < info1.length; i++{ 
for(var j=0; j< info2.length; j++{ 

    if(condition){ 
    // condition => 
    // (info1[i].orderNum == info1[j].orderNum) && (info1[i].state == 
    // info1[j].state) 

    equalInfo1.push(info1[i]); 
    equalInfo2.push(info2[j] 
    }else{ 
     differInfo1.push[info1[i]; 
     equalInfo2.push(info2[j]; 
    } 
} 
} 

equalInfo1 => [{orderNum : 1 ...}, {orderNum : 2 ...}] 
equalInfo2 => [{orderNum : 1 ...}, {orderNum : 2 ...}] 
differInfo1 => [{orderNum : 3 ...}] 
differInfo2 => [{orderNum : 4 ...}] 

//`i want condition using Object String.(Sorry, English little)` 

// but, now logic ==> [variable condition = object String.....] = [Incorrect results]// but, now logic ==> [variable condition = object String.....] = [Incorrect results]

i want

if(variable condition) { 

}else{ 

} 

// but, now logic ==> [variable condition = object String.....] = [Incorrect results]

//はyou.`ありがとう

答えて

0

私はこの1つで亀裂を取るつもりですわかりました。ここでは多くのことを前提としていますが、変数を使用してオブジェクトにアクセスしようとすると問題が発生すると思います。

オブジェクトが正しく形成されていません。 0から始まるOrderNumの値は、JavaScriptが0から始まる数字を基数8として扱うため、おそらくあなたが望むものではありません。私はそれらをあなたのために文字列に変換しました。また、stateの値も文字列である必要があり、有効にするために各オブジェクトの後にカンマを追加しました。

あなたはそう

var info1 = [ 
 
    {orderNum : "001" , state : "use" , check : 0 }, 
 
    {orderNum : "002" , state : "use" , check : 1}, 
 
    {orderNum : "003" , state : "disuse" , check : 0} 
 
]; 
 

 
var info2 = [ 
 
    {orderNum : "001" , state : "use" , check : 0 }, 
 
    {orderNum : "002" , state : "use" , check : 1}, 
 
    {orderNum : "003" , state : "use" , check : 0}, 
 
    {orderNum : "004" , state : "disuse" , check : 0} 
 
]; 
 

 
var orderNum = "orderNum"; 
 
var state = "state"; 
 

 
var info1OrderNum = info1[0][orderNum]; 
 
var info2OrderNum = info2[0][orderNum]; 
 

 
var info1State = info1[0][state]; 
 
var info2State = info2[0][state]; 
 

 
if(info1OrderNum === info2OrderNum && info1State === info2State){ 
 
    console.log("we match!"); 
 
} 
 
else{ 
 
    console.log("we DO NOT match"); 
 
}

のような文字列変数で [ ]演算子を使用して info1info2の値にアクセスすることができます
関連する問題