删除和重用数组索引
Deleting and reusing array indexes
在Javascript中,如果我有一个非常大的数组,myArray
我通过调用myArray.push()
来添加
我使用delete myArray[102]
之类的东西删除索引
创建一个单独的数组(如myArrayGaps
)来保存myArray
中哪些索引没有被使用,这样如果有未使用的索引,我就可以通过定义一个特定的索引(如myArray[102] = newValue;
)来添加到数组中,而不是调用.push()
并累积未使用的索引,这有什么好处或理由吗?
还是因为Javascript内存处理的某些方面,这是不切实际和毫无意义的?
我之所以删除而不是拼接,是因为我不想重新排列数组的索引;我使用它们来识别特定索引中的特定对象。我主要想问,是否有任何理由优化使用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]
还给你。所以你不会发现任何洞。
相关文章:
- 按最大值获取数组索引
- 删除和重用数组索引
- 警报数组索引和值
- .fadeIn .fadeOut 会导致数组索引出现奇怪的行为
- Javascript原型通用Enquries和通过数组索引分配Id
- 获取数组索引的值
- Javascript-将值与关联数组索引进行比较
- Javascript-在数组索引中循环的问题
- JavaScript - “规范化”数组索引
- 数组索引混淆
- 使用 Javascript/React.js 查找对象的数组索引
- 如何拆分数组索引
- 获取新推送元素的数组索引
- 在 javascript 中将数组索引作为参数传递
- 当对象本身存储在 JavaScript 的数组索引中时,如何打印对象的每个单独属性
- 如何使用数组索引序列
- ASP.NET/JavaScript:数组索引溢出:实体框架/LINQ
- 如何在分配给数组索引的对象上调用方法
- 使用铆钉访问数组索引.js
- 计算 Javascript 数组索引的出现次数