从 N 到最后一个元素的切片数组

如何进行这种转变?

["a","b","c","d","e"] // => ["c", "d", "e"]

我想 slice可以做到这一点,但. 。

["a","b","c","d","e"].slice(2,-1) // [ 'c', 'd' ]
["a","b","c","d","e"].slice(2,0)  // []
62683 次浏览

不要使用第二个论点:

Array.slice(2);

Https://developer.mozilla.org/en-us/docs/javascript/reference/global_objects/array/slice

如果省略 end,则将切片提取到序列的末尾。

只需给出起始索引,因为您希望从数组中获得其余的数据。

["a","b","c","d","e"].splice(2) => ["c", "d", "e"]

一个重要的考虑因素与这个问题的答案有关,这就是 spliceslice是两个 完全不同的功能,主要的区别是:

  • splice操作原始数组。
  • slice返回原始数组的一个子集,原始数组保持不变。

更多信息参见: http://ariya.ofilabs.com/2014/02/javascript-array-slice-vs-splice.html

var arr = ["a", "b", "c", "d", "e"];
arr.splice(0,2);
console.log(arr);
请使用以上代码。 也许你需要这个。

Slice 在指定的结束参数处结束,但不包括它。如果你想包含它,你必须指定最后一个索引作为数组的长度(这里是5) ,而不是结束索引(- 1)等等。

["a","b","c","d","e"].slice(2,5)
// = ['c','d','e']

在 n 之前必须加上一个“-” 如果索引为负,则末尾表示与末尾的偏移量。

function getTail(arr, n) {
return arr.slice(-n);
}
["a","b","c","d","e"].slice(-3) => ["c","d","e"]