繁体   English   中英

删除和重用数组索引

[英]Deleting and reusing array indexes

在Javascript中,如果我有一个很大的数组,则myArray

然后通过调用myArray.push()添加它

我使用delete myArray[102]类的方法delete myArray[102]索引

创建一个单独的数组(例如myArrayGaps是否有好处或理由,该数组可以保存未使用myArray索引,因此,如果有未使用的索引,我可以通过定义特定的索引(例如myArray[102] = newValue;添加到数组中myArray[102] = newValue; 而不是调用.push()并累积未使用的索引?

还是由于Java的内存处理的某些方面不切实际且毫无意义?

我删除而不是拼接的原因是因为我不想对数组的索引重新排序。 我使用它们来标识特定索引处的特定对象。 我主要是在问是否有任何理由可以优化使用delete时出现的差距。

使用delete array[index]的属性会留下一个漏洞。

相反,您可以使用splice属性,该属性将删除该索引中的值并调整数组大小。

正如您所提到的,

var a = [1,2,3,4];
delete a[2];

如果打印a现在,它将包含[1, 2, undefined × 1, 4] delete删除元素,但不重新索引数组/长度。

但是如果您使用拼接,

a.splice(2,1);

它将返回您[1, 2, 4] 因此,您不会发现任何孔。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM