var arr = [1, 2, 3, 4, 5]
console.log(arr)
//[1, 2, 3, 4, 5]
arr = arr.splice(4, 1)
console.log(arr)
//[5]
我想删除最后一个元素,但为什么它会删除除最后一个元素外的所有元素?
var arr = [1, 2, 3, 4, 5]
console.log(arr)
//[1, 2, 3, 4, 5]
arr = arr.splice(4, 1)
console.log(arr)
//[5]
你需要省略这个赋值操作。
var arr = [1, 2, 3, 4, 5]
console.log(...arr); // [1, 2, 3, 4, 5]
arr.splice(4, 1);
console.log(...arr); // [1, 2, 3, 4]
Array#splice
。对于从末尾开始的其他索引也适用。
var arr = [1, 2, 3, 4, 5]
console.log(...arr); // [1, 2, 3, 4, 5]
arr.splice(-1, 1);
console.log(...arr); // [1, 2, 3, 4]
Array#splice
方法会直接修改原数组,并返回被移除的部分。请不要将被移除的部分重新赋值给变量。
var arr = [1, 2, 3, 4, 5]
arr.splice(4, 1)
console.log(arr);
splice
函数会修改数组并返回一个包含所移除元素的新数组。
顺便提一下,你可以使用更适合此操作的 pop
函数:
var arr = [1, 2, 3, 4, 5];
arr.pop();
console.log(arr);
pop
用于删除数组的最后一个元素。
var arr = [1, 2, 3, 4, 5]
arr.splice(arr.length - 1);
console.log(arr)
您可以通过splice(-1)访问最后一个数组元素,然后将该值(5)存储到变量newArr中。原始数组现在的值为[1, 2, 3, 4]。
let arr = [1, 2, 3, 4, 5];
let newArr = arr.splice(-1);
console.log(arr) //[1, 2, 3, 4]
console.log(newArr) //[5]
var arr = [1, 2, 3, 4, 5]
console.log(arr)
//[1, 2, 3, 4, 5]
arr.splice(4, 1)
console.log(arr)
//[1, 2, 3, 4]
你也可以使用剩余运算符从数组中删除最后一个元素
const array = [1, 2, 3, 4, 5]
const [ ...newArray, last ] = array
splice方法返回删除的项目,因此正在将返回值分配给原始数组。请改成这样
var arr = [1, 2, 3, 4, 5];
console.log(arr);
//[1, 2, 3, 4, 5]
arr.splice(4, 1);
console.log(arr);
Array.prototype.splice()
可以接受三个或更多参数(如果您使用它来替换项目)。 - Yevhen Horbunkov