语法:
arr.slice([begin[, end]])
begin
可选
从该索引开始提取原数组元素,如果该参数为负数,则表示从原数组中的倒数第几个元素开始提取。
此参数缺省为0,如果 begin
超出原数组的索引范围,则会返回空数组。
end
可选
在该索引处结束提取原数组元素,slice
会提取原数组中索引从 begin
到 end
的所有元素(包含 begin
,但不包含 end
)。
如:slice(0,2)
会提取原数组中从第1个元素开始到第3元素之间的(不包含第3个元素)所有元素 (即索引为 0,1的元素)。
如果该参数为负数, 则它表示在原数组中的倒数第几个元素结束抽取。 slice(-2,-1)
表示抽取了原数组中的倒数第二个元素到最后一个元素(不包含最后一个元素,也就是只有倒数第二个元素)。
如果 end
被省略或者大于数组的长度,则 slice
会一直提取到原数组末尾。
返回值
一个含有被提取元素的新数组。
实例1:
var arr = [1,2,3,4,5]
var newArr = arr.slice();//与arr.slice(0)是一样的效果
console.log("原数组",arr);
console.log("返回值",newArr);
输出:
原数组 (5) [1, 2, 3, 4, 5]
返回值 (5) [1, 2, 3, 4, 5]
因为arr.slice() 是两个参数都缺省,等于begin是0,end缺省会取到数组结尾,所以会取到跟原数组一样的新数组。
实例2:
var arr = [1,2,3,4,5]
var newArr = arr.slice(1);
console.log("原数组",arr);
console.log("返回值",newArr);
输出:
原数组 (5) [1, 2, 3, 4, 5]
返回值 (4) [2, 3, 4, 5]
arr.slice(1)等于是从索引1开始取到数组结尾,总4个元素[2,3,4,5]。
实例3:
var arr = [1,2,3,4,5]
var newArr = arr.slice(1,3);
console.log("原数组",arr);
console.log("返回值",newArr);
输出:
原数组 (5) [1, 2, 3, 4, 5]
返回值 (2) [2, 3]
arr.slice(1,3) 取索引1-3直接的元素,包含1但不包含3,也就是索引1,2所对应的元素,故返回[2,3]