[英]Iterate through a JSON Object with nested arrays
如何使用兩個或多個嵌套數組迭代以下JSON對象? 此處的輸出未使用key:value返回。 這只是價值觀。
{"Obj":
["array 0",
["nested array 1"],
["nested array 2"]
]
};
我可以使用Obj[1]
查看每個數組,但輸出仍為JSON: {"Obj":["nested array 1"]}
。 我需要遍歷所有這些對象以獲得每個嵌套數組中的文本以放入textarea ...
救命!
謝謝大家!
您可以使用.each()
遍歷每個級別的數組。 在第一層,您可以使用$.type()
來確定值的類型,以幫助決定是輸出該值還是對其進行進一步迭代。
var data = {"Obj":
["array 0",
["nested array 1"],
["nested array 2"]
]
};
$.each( data.Obj, function(i,v) {
if( $.type( v ) == 'string' ) {
// assign v to text
} else {
$.each( v, function(index, value) {
//assign value to text
});
}
});
對於非jQuery解決方案,請嘗試Obj[i][j]
。 以下代碼向控制台輸出“嵌套數組1”,然后輸出“嵌套數組2”。
for (var i = 0; i < Obj.length; i++) {
for (var j = 0; j < Obj[i].length; j++) {
console.log(Obj[i][j]);
}
}
遍歷對象或數組的一種簡單方法是使用jQuery.each() 。
通用迭代器函數,可用於無縫迭代對象和數組。 具有長度屬性的數組和類似數組的對象(例如函數的arguments對象)通過從0到length-1的數字索引進行迭代。 其他對象通過其命名屬性進行迭代。
例:
var obj = {
"flammable": "inflammable",
"duh": "no duh"
};
$.each( obj, function( key, value ) {
alert( key + ": " + value );
});
如果嵌套數組的數量未知,則可能需要創建一個使用嵌套值調用自身的遞歸函數。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.