数组移除头部元素最好的方式splice(0,1) VS shift()

数组移除头部元素最好的方式splice(0,1) VS shift()_第1张图片

经常在移除数组第一个元素时会不由自主的纠结用哪个方法好 于是深入研究了一下这两种方式的原理

shift()使用

没有参数, 将数组的第一个元素从数组中移除并将其返回 会修改原数组

splice使用

接收三个及以上的参数, 对数组操作的起始索引,删除元素个数及要添加的元素(可以写多个) 会修改原数组

返回值区别:shift返回被删除的元素 splice返回的是被删除的元素装一个数组里

shift()具体实现

将数组的第一项赋值给firstItem 然后将后续元素的索引往前挪一位 删除最后一个元素 最后将firstItem返回

splice(0,1)具体实现

使用new Array()表达式创建一个新数组A() 将A[0] = array[0] 然后将array[0]后续元素往前挪一位 删除最后一个元素 最后将数组A返回

测试结果:

数组移除头部元素最好的方式splice(0,1) VS shift()_第2张图片

从数据来看shift()效率更高 从实现上也是 除了第一个元素之外元素的移动操作一样之外 splice要额外开辟一个数组A的空间将第一个元素赋值给A[0] 这部分的计算消耗是要比shift大的 虽然splice方法能力很强 但是对于删除数组第一个元素这个操作还是shift效率高

你可能感兴趣的:(javascript)