数组中的空元素是什么意思以及如果理论上它不存在的话为什么在长度中考虑它[重复]

问题描述 投票:0回答:2

我将一个元素添加到数组中比其长度更高的位置

enter image description here

我想知道是否有办法访问或删除这个空元素,我认为它会浪费内存

javascript arrays
2个回答
0
投票

执行此操作时,您创建了一个“稀疏数组”。非空条目之间的项目包含

undefined
。因此,内存占用可以忽略不计。您无法删除它们。如果您不喜欢这种行为,请不要创建稀疏数组。


0
投票

为了过滤非稀疏/密集元素,您可以使用为每个元素返回的回调

true

也许此链接有助于理解稀疏数组的机制:JavaScript:稀疏数组与密集数组

let array = new Array(99999),
    nonsparse;

array[30] = undefined;

nonsparse = array.filter(_ => true);

console.log(nonsparse);
console.log(nonsparse.length);

© www.soinside.com 2019 - 2024. All rights reserved.