执行此操作时,您创建了一个“稀疏数组”。非空条目之间的项目包含
undefined
。因此,内存占用可以忽略不计。您无法删除它们。如果您不喜欢这种行为,请不要创建稀疏数组。
为了过滤非稀疏/密集元素,您可以使用为每个元素返回的回调
true
。
也许此链接有助于理解稀疏数组的机制:JavaScript:稀疏数组与密集数组。
let array = new Array(99999),
nonsparse;
array[30] = undefined;
nonsparse = array.filter(_ => true);
console.log(nonsparse);
console.log(nonsparse.length);