在each
循环的第一次迭代之后,myArr
完全加载了所有4个对象。
(在第一次循环后,在控制台中查看console.log(myArr)
- 的打印件。)
我很难理解这是怎么回事,因为如果你看看console.log(item)
的打印件,它只包含1个对象,而不是全部4个。
那么myArr
如何在第一次迭代后完全加载,那时应该只在第四次迭代后发生?
以下是使用相同代码的JSFiddle的链接:http://jsfiddle.net/bengrunfeld/fdtom886/
var obj = [
{
"id": 1111,
"todoText": {"index":2,"items":[{"firstName":"Benny"},{"lastName":"Hill"}]}
},
{
"id": 2222,
"todoText": {"index":2,"items":[{"firstName":"Bob"},{"lastName":"Marley"}]}
},
{
"id": 3333,
"todoText": {"index":2,"items":[{"firstName":"John"},{"lastName":"Lennon"}]}
},
{
"id": 4444,
"todoText": {"index":2,"items":[{"firstName":"Led"},{"lastName":"Zeplin"}]}
},
];
var myArr = [];
$.each(obj, function(key, item) {
console.log(myArr);
console.log(item);
myArr.push(item);
});
答案 0 :(得分:2)
您正在将数组(通过引用)记录到控制台。一旦展开它,就完成了每个循环,这意味着数组本身有4个项目。
要在此处查看差异,您可以记录myArr.length
,并且您将看到长度是您在每个循环的每次迭代中所期望的。
RE:你的“红利问题”第一张照片对我来说不是空白。