📌  相关文章
📜  如何在javascript中复制数组的所有元素,除了最后一个元素(1)

📅  最后修改于: 2023-12-03 15:24:30.916000             🧑  作者: Mango

如何在 JavaScript 中复制数组的所有元素,除了最后一个元素

在 JavaScript 中,复制一个数组是一个常见的操作。如果需要复制数组中的所有元素,可以使用 slice 方法。但是,如果仅需要复制除了最后一个元素之外的所有元素,该怎么做呢?

下面给出几种实现方式:

方法一:使用 slicelength 属性

可以使用数组原型上的 slicelength 属性来实现:

const originalArray = [1, 2, 3, 4, 5];
const newArray = originalArray.slice(0, originalArray.length - 1);
console.log(newArray); // [1, 2, 3, 4]

上面的代码中,slice 方法的第一个参数为起始位置,第二个参数为结束位置(不包括该位置的元素)。使用 length 属性减去 1,可以得到除了最后一个元素之外所有元素的下标范围。

方法二:使用 filter 方法

可以使用数组原型上的 filter 方法来实现:

const originalArray = [1, 2, 3, 4, 5];
const newArray = originalArray.filter((_, index) => index < originalArray.length - 1);
console.log(newArray); // [1, 2, 3, 4]

上面的代码中,filter 方法的参数为一个回调函数,回调函数中的第二个参数为元素下标。通过判断元素下标是否小于数组长度减 1,可以得到除了最后一个元素之外所有元素。

方法三:使用 slice 和扩展运算符

可以使用数组原型上的 slice 和扩展运算符来实现:

const originalArray = [1, 2, 3, 4, 5];
const newArray = [...originalArray.slice(0, originalArray.length - 1)];
console.log(newArray); // [1, 2, 3, 4]

上面的代码中,slice 方法返回一个新数组,扩展运算符则将这个新数组的所有元素复制到了一个新数组中,同时省略了最后一个元素。

以上就是三种常见的方法。当然,还有其他实现方式,例如使用 pop 方法先弹出最后一个元素,再使用 slice 方法复制所有元素,但是这样会改变原数组,不太推荐。