数组中的empty元素
当跨下标给数组赋值时,数组会产生empty
元素。
let arr = [1]
arr[100] = 10;
打印arr
的结果为[1, empty × 99, 10]
。中间存在99个空元素。打印这个数组的length
,结果为101
,是正常的,但是如果此时用forEach
遍历这个数组,只能循环两次。
let arr = [1];
arr[100] = 10;
arr.forEach(item => {
console.log(item);
});
// 输出:
// 1
// 10
这种现象在MDN上也有相应的解释:
forEach()
方法按升序为数组中含有效值的每一项执行一次callback
函数,那些已删除或者未初始化的项将被跳过(例如在稀疏数组上)。
可以用for
循环解决这个问题。
for (let item of arr) {
console.log(item);
}
此时会打印出1
、99个undefined
和10
。
如果您觉得本文对您有用,欢迎捐赠或留言~
- 本博客所有文章除特别声明外,均可转载和分享,转载请注明出处!
- 本文地址:https://www.leevii.com/?p=2511