Tom*_*Tom 21 apache-flex flex3 actionscript-3
从Array()中间删除一个特定条目的最快方法是什么?
数组很大,有字符串.
我不想只设置Array [5] = null,而是将数组大小减少一个,而array [5]应该包含数组[6]的内容等.
kky*_*kyy 51
没有任何基准来支持这一点,但人们会认为原生的Array.splice方法是最快的......
因此,要删除索引5处的条目:
array.splice(5, 1);
Run Code Online (Sandbox Code Playgroud)
Jes*_*sak 25
如果你不关心项目的排列顺序(只是想让它变得更短1),你可以在阵列的最后一个元素复制到索引中删除,然后弹出最后一个元素了.
array[index] = array[array.length-1];
array.pop();
Run Code Online (Sandbox Code Playgroud)
如果你能够重新排序数组,我猜这会更快,CPU时间更快.
编辑:您应该根据具体情况进行基准测试; 我最近这样做了,拼接更快.(大概是因为Chrome实际上并没有将数组存储为单个连续缓冲区.)
Array.splice() “向数组添加元素和从数组中删除元素”:
myArr.splice(indexToRemove, 1); // only removing one index, thus the 1
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
41706 次 |
| 最近记录: |