You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JS不使用shift/unshift/循环时如何正确删除数组头部元素

错误原因

Array.prototype.splice() 方法的返回值是被删除元素组成的新数组,而非删除元素后的原数组。你将splice(0,1)的返回值直接赋值给array变量,自然只会得到被删除的头部元素[17]。

符合限制的解决方案

在不能使用shift/unshift/loop的前提下,你可以使用Array.prototype.slice()方法实现头部元素删除:该方法会返回指定区间的新数组,不会修改原数组,也不会用到你禁止的语法。你只需指定起始下标为1,省略结束下标,即可截取从第二个元素到数组末尾的所有内容,刚好实现删除头部元素的效果。

修改后的完整代码如下:

var array = [100, 200, 300]
var newFirstElement = 17
// 头部添加元素,原有逻辑可正常运行
var array = [newFirstElement].concat(array)
console.log(array);

// 头部删除元素,替换splice为slice
array = array.slice(1)
console.log(array);

运行输出:

[ 17, 100, 200, 300 ]
[ 100, 200, 300 ]

内容的提问来源于stack exchange,提问作者Kanchon Gharami

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.09 03:15:02