数组中的empty元素

该文章由 leevare 发布于 ,归类于 Javascript

当跨下标给数组赋值时,数组会产生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个undefined10

如果觉得我的文章对您有用,请您随意打赏。您的支持将鼓励我更加努力创作!

相关文章:

订阅
提醒
guest
0 评论
Inline Feedbacks
View all comments