使用带有关联数组的forEach vs for(var key)

时间:2017-12-15 00:14:18

标签: javascript arrays foreach

我只是想知道为什么forEach不适用于关联数组:

var array =[];
array['W'] = 0;
array['S'] = 1;

// This doesn't work
console.log(array);
array.forEach(function(item){
console.log(item);
});

// This does
for(var key in array){
console.log(array[key]);
}

2 个答案:

答案 0 :(得分:3)

Array.prototype.forEach由标准定义,以迭代索引成员。

for-in枚举all object properties

简而言之,你的“为什么”问题的答案是:因为标准是这样说的。

答案 1 :(得分:1)

可能是因为array.length评估为0。您可以使用Object.values(array).forEach来迭代数组的实际值。