[英]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.