$ .each()超过键值对数组

时间:2016-05-20 07:29:57

标签: javascript jquery arrays

我创建了我的数组如下:

$.each

我习惯使用$.each(test, function (index, value){ console.log(value); }); 遍历我的数组并打印出值和索引。我这样做如下:

[]

但不知何故,它只打印4。 如何在我的数组中循环打印出值6for vs forEach

4 个答案:

答案 0 :(得分:4)

each只会遍历数组的可迭代属性,pizzapudding不是可迭代的属性。

当您需要键值对时,将变量声明为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); 
});