62

如何进行这种转变?

["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)  // []
4

7 回答 7

125

不要使用第二个参数:

Array.slice(2);

https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/slice

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

于 2013-01-18T08:34:29.583 回答
8

与@insomniac 的答案有关的一个重要考虑因素是spliceslice是两个完全不同的功能,主要区别在于:

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

请参阅:http ://ariya.ofilabs.com/2014/02/javascript-array-slice-vs-splice.html了解更多信息。

于 2015-07-20T14:15:57.923 回答
5

只需给出起始索引,因为您想要数组中的其余数据..

["a","b","c","d","e"].splice(2) => ["c", "d", "e"]
于 2013-01-18T08:35:34.303 回答
3
["a","b","c","d","e"].slice(-3) => ["c","d","e"]
于 2020-08-08T14:24:14.810 回答
1

切片在指定的结束参数处结束,但不包括它。如果要包含它,则必须将最后一个索引指定为数组的长度(在本例中为 5),而不是结束索引(-1)等。

["a","b","c","d","e"].slice(2,5) 
// = ['c','d','e']
于 2020-04-30T20:33:54.723 回答
1

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

function getTail(arr, n) {
return arr.slice(-n);
}
于 2020-07-09T11:31:10.647 回答
-2

var arr = ["a", "b", "c", "d", "e"];
arr.splice(0,2);
console.log(arr);
请使用上面的代码。可能是你需要的。

于 2018-10-30T12:23:31.687 回答