
经常在移除数组第一个元素时会不由自主的纠结用哪个方法好 于是深入研究了一下这两种方式的原理
shift()使用
没有参数, 将数组的第一个元素从数组中移除并将其返回 会修改原数组
splice使用
接收三个及以上的参数, 对数组操作的起始索引,删除元素个数及要添加的元素(可以写多个) 会修改原数组
返回值区别:shift返回被删除的元素 splice返回的是被删除的元素装一个数组里
shift()具体实现
将数组的第一项赋值给firstItem 然后将后续元素的索引往前挪一位 删除最后一个元素 最后将firstItem返回
splice(0,1)具体实现
使用new Array()表达式创建一个新数组A() 将A[0] = array[0] 然后将array[0]后续元素往前挪一位 删除最后一个元素 最后将数组A返回
测试结果:

从数据来看shift()效率更高 从实现上也是 除了第一个元素之外元素的移动操作一样之外 splice要额外开辟一个数组A的空间将第一个元素赋值给A[0] 这部分的计算消耗是要比shift大的 虽然splice方法能力很强 但是对于删除数组第一个元素这个操作还是shift效率高
文章探讨了在JavaScript中移除数组第一个元素时,使用shift()方法与splice(0,1)方法的性能差异。shift()方法直接移动元素并返回被删除的值,而splice()方法除了移动元素外,还需创建新数组,因此在效率上shift()通常更高。对于删除数组首元素这一特定操作,shift()更为优化。
1759

被折叠的 条评论
为什么被折叠?



