经常在移除数组第一个元素时会不由自主的纠结用哪个方法好 于是深入研究了一下这两种方式的原理
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效率高