使用V8从密集阵列中删除元素的最佳方法是什么?

时间:2015-02-27 01:07:33

标签: javascript arrays node.js google-chrome v8

Google V8引擎为密集和稀疏数组提供了不同的内部表示。当一个数组从密集变为稀疏时,它会导致字典模式启动,这要慢得多。

我似乎无法弄清楚从密集数组中某处移除元素的最有效(最快)方法是什么,以避免进入稀疏数组。

用例非常简单。从数组[8, 6, 1]开始,删除元素6以转到[8, 1]

2 个答案:

答案 0 :(得分:1)

如果你只删除一个元素,如果元素位于数组的开头,则shift()最快,当元素位于数组的末尾时,pop()最快,{{1}}如果元素位于中间位置,则{3}}通常最快。

答案 1 :(得分:-2)

您正在寻找删除或替换数组部分的splice method。在你的情况下:

var arr = [8, 6, 1];
arr.splice(1, 1); // at pos 1 remove 1 element, yields [6]
arr; // [8, 1]