如何使用两个或多个嵌套数组迭代以下JSON对象?此处的输出不会返回key:value。这只是价值观。
{"Obj":
["array 0",
["nested array 1"],
["nested array 2"]
]
};
我可以使用Obj[1]
查看每个数组,但输出仍然是JSON:{"Obj":["nested array 1"]}
。我需要遍历所有这些以获取每个嵌套数组中的文本以放入textarea ......
帮助!
全部谢谢!
答案 0 :(得分:0)
您可以使用.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
});
}
});
答案 1 :(得分:0)
对于非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]);
}
}
答案 2 :(得分:0)
循环访问对象或数组的简单方法是使用jQuery.each()。
通用迭代器函数,可用于无缝迭代 对象和数组。数组和数组类似的对象 重复长度属性(例如函数的参数对象) 按数字索引,从0到长度-1。其他对象通过迭代 他们的命名属性。
示例:
var obj = {
"flammable": "inflammable",
"duh": "no duh"
};
$.each( obj, function( key, value ) {
alert( key + ": " + value );
});
如果你有一个未知数量的嵌套数组,你可能想要创建一个用嵌套值调用自身的递归函数。