![](/img/trans.png)
[英]Why is the splice function removing items from the beginning, not the end here? (Javascript)
[英]javascript splice method removing elements from end
我正在尝试使用拼接方法从末尾删除 2 个元素这就是我尝试的
const arr = [3,4,5,6,7];
arr.splice(-1, 2)
我期望 arr 为 [3,4,5] 但 arr 值为 [3,4,5,6]
想了解为什么它会这样
来自MDN
开始
开始更改数组的索引。 如果大于数组的长度,start 将被设置为数组的长度。 如果为负,它将从数组末尾开始那么多元素。 (在这种情况下,原点-1,意思是-n是倒数第n个元素的索引,因此相当于array.length-n的索引。)如果array.length + start小于0,它将从索引 0 开始。
index -1
表示从最后一个元素开始,所以在我们的例子中,只会删除最后一个元素。
您只需从数组的最后一个索引开始并删除两个项目。
结果是一个没有7
的数组。
// -1 index const arr = [3, 4, 5, 6, 7]; arr.splice(-1, 2); console.log(arr);
最简单的方法是使用 arr.length
const arr = [3,4,5,6,7]; arr.splice(arr.length - 2) console.log(arr)
第一个参数告诉拼接它应该从哪个索引删除所有元素
const arr = [3,4,5,6,7]; const itemsToDelete = 2; arr.splice(arr.length - itemsToDelete, itemsToDelete) console.log('arr', arr);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.