Array(3)
会产生[ , , ]
,length
为3。
[1, 2, 3].forEach
循环3次。
然而,Array(3).forEach
和[ , , ].forEach
都没有循环。
这是为什么?我以为我发现了一种n
次做某事而不使用for
循环的方式,我很失望地发现它不起作用!
答案 0 :(得分:2)
forEach()为每个存在的元素执行一次提供的回调 在数组中按升序排列。它不是为索引调用的 已删除或未初始化的属性(即稀疏属性) 阵列)
来自MDN的示例:
function logArrayElements(element, index, array) {
console.log('a[' + index + '] = ' + element);
}
// Notice that index 2 is skipped since there is no item at
// that position in the array.
[2, 5, , 9].forEach(logArrayElements);
// logs:
// a[0] = 2
// a[1] = 5
// a[3] = 9