和Python的语法相似,复制原字符串的一部分并返回,从起始位置开始,到终止位置结束(但不包含终止位置的元素),原字符串不变。
const arr = [1, 2, 3, 4, 5];
arr.slice(3); // returns [4, 5]; arr unmodified
arr.slice(2, 4); // returns [3, 4]; arr unmodified
arr.slice(-2); // returns [4, 5]; arr unmodified
arr.slice(1, -2); // returns [2, 3]; arr unmodified
// 从倒数第2个元素开始,到倒数第一个元素结束,但不包含倒数第一个元素
arr.slice(-2, -1); // returns [4]; arr unmodified
语法
arr.slice([begin[, end]])
begin
可选,可为负。如果 begin
大于数组长度,返回空数组。slice(-1) 提取最后一个元素,slice(-2)提取最后两个元素,依次类推。
slice() 返回整个数组。
end
可选,可为负。如果大于数组长度,则实际取值为数组长度。
手动测试写slice(,)
错误,slice(,1)
错误,slice(1,)
ok,当然实际也不应该写slice(1,)
这样的表达式。如果出现负数,倒数第一个元素的索引为 -1, 倒数第二个为-2, 类推,实际对应 arr.length + index, 如例子中的arr
,arr.length为5, -1 正好对应 5-1 = 4, 索引为4即最后一个元素。
[1] https://developer.mozilla.org/de/docs/Web/JavaScript/Reference/Global_Objects/Array/slice