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

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

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效率高

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值