[英]How to loop through Nested Json Array with (JavaScript) for loop and display the text
這可能是一個非常簡單的問題,但是無論我更改了多少次for循環,它都對我不起作用。 那么如何使用JavaScript中的for循環遍歷此數組?
var fielditems =[
[["News Tips"],["Opinions"],["MedMinutes"]],
[["Yes"],["No"],["Maybe"]],
[["How"],["Why"],["When"]]
];
這是我所擁有的,並且無法正常工作。 我使用警報只是測試結果,但它甚至沒有返回任何內容。
for(itemSet in fielditems){
var itemSetValues = fielditems[itemSet];
for(set in itemSetValues){
var itemValue = itemSetValues[set];
for(value in itemvalue){
alert(itemValue[value]);
}
}
}
我究竟做錯了什么?
不要in
for數組中使用for()
。 它用於對象屬性。 請改用標准格式。
演示: http : //jsfiddle.net/ThinkingStiff/EVWch/
var fielditems =[
[["News Tips"],["Opinions"],["MedMinutes"]],
[["Yes"],["No"],["Maybe"]],
[["How"],["Why"],["When"]]
];
for( var itemIndex = 0; itemIndex < fielditems.length; itemIndex++ ){
var itemSetValues = fielditems[itemIndex];
for(var setIndex = 0; setIndex < itemSetValues.length; setIndex++ ){
var itemValue = itemSetValues[setIndex];
for(var valueIndex = 0; valueIndex < itemValue.length; valueIndex++ ){
alert(itemValue[valueIndex]);
};
};
};
首先,控制台是您的朋友。 您收到錯誤ReferenceError: itemvalue is not defined
因為javascript區分大小寫。 將最嵌套循環中的itemvalue
更改為itemValue
。
其次,如果要迭代數組,則應使用for-loop而不是for-in-loop
for-in
循環 for (var i=0; i<fielditems.length; i++) {
var itemSetValues = fielditems[i];
for (var j=0; j<itemSetValues.length; j++) {
var itemvalue = itemSetValues[j]; // notice the case
for (var k=0; k<itemvalue.length; k++) {
alert(itemvalue[k]);
}
}
}
for..in
用於對象( {}
),而不用於數組( []
)。
您需要使用標准的for
循環。
for(var i = 0, iLen = fielditems.length; i < iLen; i++){
var iItem = fielditems[i];
for(var j = 0, jLen = iItem.length; j < jLen; j++){
var jItem = iItem[j];
alert(jItem[0]); // you can also add another loop here, if this will have more elements
}
}
注意:
for(var i = 0, iLen = fielditems.length; i < iLen; i++)
優於:
for(var i = 0; i < fielditems.length; i++)
因為不是每個循環都請求fielditems.length
,所以在開始時只請求一次。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.