和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
本文深入解析了JavaScript中数组的slice方法,详细介绍了如何通过指定起始和结束位置来复制数组的一部分,包括正数和负数索引的使用,以及在不同情况下的返回结果。
1675

被折叠的 条评论
为什么被折叠?



