Loop Through Array inside Object in Javascript
Possible Duplicate:
Loop through Json object
1 2 3 4 5 6 7 8 9 10 11 12 | { "data": [ { "name":"Jen", "id":"1" }, { "name":"Steve", "id":"8" } ] } |
我正在与之交互的服务器用上面的响应进行响应。
我正在尝试循环使用it
这就是我要做的:
1 2 3 | for (var item in response.data) { console.log(item.name); } |
这不管用。怎么了?
谢谢你
在阅读评论后,我让它与以下内容一起工作:
1 2 3 | for (var item in response.data) { console.log(response.data[item].name); } |
我得到了一份名单…
有人能仔细分析一下为什么会起作用吗?
1 2 3 4 | for (var i = 0; i<response.data.length; i++) { // use i as an array index console.log(response.data[i].name); } |
在javascript中,
签出:为什么在数组迭代中使用"for…in"是一个坏主意?
for…in迭代对象属性的名称。数组项也被视为"属性",因此在迭代索引时(在您的情况下是0,1)。如您在使用response.data[0]时预期的那样,您将得到数组的第一个元素。
数组的索引只是非负整数的字符串属性名(即纯对象属性名),因此
由于上述原因,使用从
要测试"无特定顺序"语句,请在IE和其他浏览器中尝试以下操作,并注意不同的顺序:
1 2 3 4 5 6 7 | var a = []; a[2] = 2; a[0] = 0; a[3] = 3; var b = []; for (var i in a) b.push(a[i]); alert(b); |