我创建了我的数组如下:
$.each
我习惯使用$.each(test, function (index, value){
console.log(value);
});
遍历我的数组并打印出值和索引。我这样做如下:
[]
但不知何故,它只打印4
。
如何在我的数组中循环打印出值6
和for vs forEach
?
答案 0 :(得分:4)
each
只会遍历数组的可迭代属性,pizza
和pudding
不是可迭代的属性。
当您需要键值对时,将变量声明为object。
var test = {};
test['pizza'] = 4;
test['pudding'] = 6;
答案 1 :(得分:1)
您不需要jQuery迭代Javascript数组,只需使用for
。
var test = [];
test['pizza'] = 4;
test['pudding'] = 6;
for (var k in test) {
if (test.hasOwnProperty(k)) {
console.log('Key: ' + k + ' Value: ' + test[k]);
}
}
// Key: pizza Value: 4
// Key: pudding Value: 6
您不需要将测试声明为此对象(在其他答案中建议),数组很好。
通过使用for
,您可以提高应用程序的性能。 See here
在Firefox和Chrome中,for循环的速度远远超过100倍 其他人。
答案 2 :(得分:0)
您可能想要选择满足您需求的方式。我想你试图获得一组看起来像[{},{},{},{}]
的对象答案 3 :(得分:0)
这里test是一个对象(关联数组),而不是一个数组,所以你需要将它声明为javascript对象
var test = {};
test['pizza'] = 4;
test['pudding'] = 6;
$.each(test, function (index, value){
console.log(value);
});