Skip to content

在JavaScript中找到数组的头部和尾部

在任何编程语言中,找到数组的头部和尾部是一种常见操作。简单来说,数组的头部是它的第一个元素,而尾部是数组的其余部分。在JavaScript中有几种方法可以实现这一点,让我们开始吧。

解构赋值

获取数组的头部和尾部最简单的方法是使用解构赋值语法。这使我们可以将数组的第一个元素赋值给一个变量,而将数组的其余部分赋值给另一个变量。

const arr = [1, 2, 3];
const [head, ...tail] = arr;
// head = 1, tail = [2, 3]

这对于空数组也适用,因为头部将是undefined,尾部将是一个空数组([])。

const arr = [];
const [head, ...tail] = arr;
// head = undefined, tail = []

单独的函数

解构赋值很好用,但如果你只想获取数组的头部或尾部怎么办?你可以使用解构赋值并忽略你不需要的变量,但也有其他方法可以做到这一点。

数组的头部

要获取数组的头部,只需访问数组的第一个元素。可以使用方括号表示法语法和索引0来实现。

const head = arr => (arr && arr.length ? arr[0] : undefined);

head([1, 2, 3]); // 1
head([]); // undefined

如您在此示例中所见,可以添加一些额外的处理来检查值是否为类似数组(即具有length属性)并且是否不为空。这不是严格必要的,但无论如何都值得添加。

数组的尾部

对于数组的尾部,我们需要返回除第一个元素之外的所有元素。Array.prototype.slice()非常适合此操作,因为您可以指定起始索引为1以获取除第一个元素之外的所有元素。

const tail = arr => (arr && arr.length > 1 ? arr.slice(1) : []);

tail([1, 2, 3]); // [2, 3]
tail([1]); // []
tail([]); // []

与数组的头部类似,我们需要检查值是否为类似数组,并且是否具有多于一个元素。如果是,我们可以使用Array.prototype.slice()返回除第一个元素之外的所有元素。否则,我们可以简单地返回一个空数组([])。