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