【发布时间】:2012-12-18 04:00:55
【问题描述】:
我制作了一个简单的程序,使用两个 for 循环在本地存储一个数组,但是发生了一些奇怪的事情......
这是我的代码:
var imagesdata = data[0];
var preferences = data[1];
for (var i = preferences.length - 1; i >= 0; i--) {
(function(i){
for (var z = imagesdata.length - 1; z >= 0; z--) {
(function(i){
if(imagesdata[z].cathegory == preferences[i].cathegory){
var array = $('body').data('data'+preferences[i].cathegory);
if(array == null){
alert('asefsef');
$('body').data('data'+preferences[i].cathegory, [{'pname' : imagesdata[z].pname , 'pimage' : imagesdata[z].pimage}]);
}else{
$('body').data('data'+preferences[i].cathegory, array.push({'pname' : imagesdata[z].pname , 'pimage' : imagesdata[z].pimage}));
}
}
})(i);
};
})(i);
};
它说对象 2 没有方法 push 但是如果我刚刚插入,为什么第二个出现在数组上:[{'pname' : imagesdata[z].pname , 'pimage' : imagesdata[z].pimage}]
谢谢!
【问题讨论】:
-
看起来和 JSON 没有任何关系。
-
为什么需要这些闭包? 'i' 在辅助 for 循环的每次迭代中都将保持不变。
标签: javascript json node.js object for-loop