Google V8引擎为密集和稀疏数组提供了不同的内部表示。当一个数组从密集变为稀疏时,它会导致字典模式启动,这要慢得多。
我似乎无法弄清楚从密集数组中某处移除元素的最有效(最快)方法是什么,以避免进入稀疏数组。
用例非常简单。从数组[8, 6, 1]
开始,删除元素6
以转到[8, 1]
。
答案 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]