2017-09-21 64 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

好了,我要帶裂縫的這一個。我在這裏假設很多,但我認爲你的問題源自於試圖使用變量訪問對象。

您的物體未正確成型。以0開頭的OrderNum值可能不是您想要的,因爲JavaScript會將以0開頭的數字視爲基數8 - 我將它們轉換爲字符串。另外state值也需要是字符串,並且在每個對象之後添加逗號以使其有效。

你可以用一個字符串變量使用[ ]操作員訪問的info1info2值,像這樣

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"); 
 
}

相關問題