如何进行这个转换?
["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) // []
如何进行这个转换?
["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) // []
不要使用第二个参数:
Array.slice(2);
https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Array/slice
如果省略 end 参数,切片操作将会一直提取到序列的末尾。与@insomniac的回答相关的一个重要考虑因素是,splice
和slice
是两个完全不同的函数,它们的主要区别在于:
splice
会修改原始数组。slice
返回原始数组的子集,而原始数组保持不变。参见:http://ariya.ofilabs.com/2014/02/javascript-array-slice-vs-splice.html获取更多信息。
只需给定你想要的起始索引,剩余数据就可以从数组中获取。
["a","b","c","d","e"].splice(2) => ["c", "d", "e"]
["a", "b"]
。 - General Grievance["a","b","c","d","e"].slice(-3) => ["c","d","e"]
function getTail(arr, n) {
return arr.slice(-n);
}
n
条记录,但不包括从第 n
条记录到结尾的所有记录。 - Friedrich -- Слава Україні["a","b","c","d","e"].slice(2,5)
// = ['c','d','e']
var arr = ["a", "b", "c", "d", "e"];
arr.splice(0,2);
console.log(arr);
arr.slice(2, arr.length)
。如果第二个参数超过了数组的长度,它仍然会返回从begin
到序列末尾的元素。如果这对你不起作用,你需要一个 if 语句。 - Tim S.