删除数组第一个

6 阅读2分钟

在JavaScript中,如果你想要删除数组的第一个元素,可以使用多种方法来实现。以下是一些常见的方式:

方法1:使用Array.prototype.shift()

shift()方法会删除数组的第一个元素,并返回该元素的值。同时,数组的长度会减少1。

const array = [1, 2, 3, 4, 5];
const firstElement = array.shift(); // 删除并返回第一个元素
console.log(firstElement); // 输出: 1
console.log(array); // 输出: [2, 3, 4, 5]

方法2:使用Array.prototype.slice()结合重新赋值

如果你不希望改变原数组,或者想要一个更“函数式”的方法,可以使用slice()方法创建一个新数组,该数组不包含第一个元素。

const array = [1, 2, 3, 4, 5];
const newArray = array.slice(1); // 从索引1开始切片,不包括索引0的元素
console.log(newArray); // 输出: [2, 3, 4, 5]
console.log(array); // 原数组不变: [1, 2, 3, 4, 5]

如果你确实想要修改原数组,可以将slice()的结果重新赋值给原数组变量(但这通常不是最佳实践,因为它会丢失对原数组的引用):

const array = [1, 2, 3, 4, 5];          |
| - | --------------------------------------- |
|   | array = array.slice(1); // 重新赋值,原数组引用丢失 |
|   | console.log(array); // 输出: [2, 3, 4, 5]

然而,这种方法通常不推荐,因为它会导致任何对原数组的引用都失效。更好的做法是使用一个临时变量来保存新数组,或者如果你确定要修改原数组,直接使用shift()

方法3:使用数组解构

如果你只需要从数组中“提取”出除了第一个元素以外的所有元素,并且不关心原数组是否被修改(实际上,这种方法不会修改原数组,而是创建一个新数组),你可以使用数组解构:

const array = [1, 2, 3, 4, 5];
const [, ...rest] = array; // 第一个元素被忽略,rest包含剩余的元素
console.log(rest); // 输出: [2, 3, 4, 5]
console.log(array); // 原数组不变: [1, 2, 3, 4, 5]

这种方法特别适用于当你需要保留原数组不变,并且想要一个包含剩余元素的新数组时。

综上所述,shift()方法是删除数组第一个元素并修改原数组的最直接方式。如果你需要保留原数组不变,slice()或数组解构是更好的选择。