2014-07-24 28 views
0

我有以下數據數組:如何使用字符串中的數據更新JavaScript對象?

var ans = 
[ 
{"text":"x","response":false}, 
{"text":"y","response":false}, 
{"text":"z","response":true} 
]; 

var correct = "010"; // I need to add this to the array ans 

任何人都可以建議我如何使用使用的數據在正確的變量添加到陣列中,使:

var ans = 
[ 
{"text":"x","response":false,"correct":false}, 
{"text":"y","response":false,"correct":true}, 
{"text":"z","response":true,"correct":false} 
]; 
+0

你到底想幹什麼? –

回答

2
for(var i=0; i< ans.length; i++) { 
    ans[i].correct = correct.charAt(i) == "1"; 
} 
+0

我看到你將值設置爲「1」,這是否與設置爲true相同? –

+0

我沒有將它設置爲1.我將它設置爲(correct.charAt(i)==「1」)比較的結果是一個布爾值:true或false –

2
for (var i = 0; i < correct.length; i++) { 
    ans[i]["correct"] = correct[i] === "1"; 
} 
+0

我看你正在設置值到「1」這是否與設置爲true相同? –

+0

我們沒有將值設置爲「1」,我們將值設置爲比較結果(正確[i] ===「1」),它可以是真或假。 – jw2013

1

你也是這樣做的(使用for-in循環)。

參考:For-each over an array in JavaScript?

for(key in ans){ 
    ans[key].correct = correct.charAt(key) == "1"; 
} 
+0

我看到你將值設置爲「1」,這是否與設置爲true相同? –

+0

是的。 'correct.charAt(key)==「1」'的結果 –

0
var ans = 
    [ 
    {"text":"x","response":false}, 
    {"text":"y","response":false}, 
    {"text":"z","response":true} 
    ]; 

var correct = "010"; 

var sep = correct.split(""); 

var arr = []; 

for (var i = 0; i < sep.length; i++) { 
    if (sep[i] == 0) { 
     arr.push("false"); 
     } else { 
     arr.push("true"); 
    } 
    } 

    var len = ans.length; 

for (var i = 0; i < len; i++) { 

     ans[i].correct = arr[i]; 
    } 
相關問題