Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用V8从密集阵列中删除元素的最佳方法是什么?_Javascript_Arrays_Node.js_Google Chrome_V8 - Fatal编程技术网

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

Javascript 使用V8从密集阵列中删除元素的最佳方法是什么?,javascript,arrays,node.js,google-chrome,v8,Javascript,Arrays,Node.js,Google Chrome,V8,Google V8引擎对密集和稀疏阵列有不同的内部表示。当数组从密集变为稀疏时,它会导致字典模式启动,这要慢得多 我似乎不知道从密集数组中的某个位置删除元素以避免使用稀疏数组的最有效(最快)方法是什么 用例非常简单。从数组[8,6,1]开始,移除元素6转到[8,1]如果只移除一个元素,shift()如果元素位于数组的开头,则速度最快,pop()当元素位于数组的末尾时速度最快,如果元素位于中间,通常是最快的。 < p>您正在寻找移除或替换数组部分的方法。就你而言: var arr = [8, 6,

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

我似乎不知道从密集数组中的某个位置删除元素以避免使用稀疏数组的最有效(最快)方法是什么


用例非常简单。从数组
[8,6,1]
开始,移除元素
6
转到
[8,1]
如果只移除一个元素,
shift()
如果元素位于数组的开头,则速度最快,
pop()
当元素位于数组的末尾时速度最快,如果元素位于中间,通常是最快的。

< p>您正在寻找移除或替换数组部分的方法。就你而言:

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

如果你害怕变得稀疏,我不知道为什么,除非你只针对V8用户,确切地知道你的数组,并且确信这会对性能产生相关的影响,你可以只设置
null
或任何特定的索引值,你可以在其他操作中忽略它。这不是稀疏数组,
[8,1]
是。如果要删除成员并保留“密集”数组,请使用。如果希望其余成员保留其当前索引,请使用“删除”。