Skip to content

获取JavaScript数组的第n个元素

从JavaScript数组中检索元素通常是通过索引来完成的。但是如果我们想要从数组末尾获取第n个元素呢?或者,也许是获取所有索引是n的倍数的元素?让我们看看如何实现。

获取JavaScript数组的第n个元素

通过使用Array.prototype.slice(),可以轻松地获取JavaScript数组的第n个元素。唯一需要记住的是负索引,可以用来获取数组的倒数第n个元素。

const nthElement = (arr, n = 0) =>
  (n === -1 ? arr.slice(n) : arr.slice(n, n + 1))[0];

nthElement(['a', 'b', 'c'], 1); // 'b'
nthElement(['a', 'b', 'b'], -3); // 'a'
nthElement(['a', 'b', 'b'], 3); // undefined

获取JavaScript数组的每个第n个元素

如果需要获取JavaScript数组的每个第n个元素,可以使用Array.prototype.filter()。结合取模运算符(%),可以使用它来保留数组中每个第n个位置的元素。

const everyNth = (arr, nth) =>
  arr.filter((e, i) => i % nth === nth - 1);

everyNth([1, 2, 3, 4, 5, 6], 2); // [ 2, 4, 6 ]