Array.prototype.slice用法详解

slice方法是定义在js数组原型中的方法,用于截取数组的部分元素,具体使用如下:

arrayExample.slice(start, end);

start为起始元素位置,end为截止元素位置,如:

var arrayExample = [1, 2, 3, 4, 5];
var arrayResult = arrayExample.slice(1,4);
console.log(arrayResult);    //结果为[2, 3, 4];

其中end参数可以省略,参数均可为负值,即为从末尾算起位数。

另外,Array.prototype.slice还有另一个用法——将拥有length属性的对象转换为数组,如函数中的arguments对象,虽然具有length属性,但并不是数组,无法使用数组原型中的方法,此时通过Array.prototype.slice.call(arguments)可将其转换为数组,如下代码所示:

function getArray(){
    var tmp = Array.prototype.slice.call(arguments);
    return tmp;
}
var arrayExample = getArray(1,2,3,4,5);
console.log(arrayExample instanceof Array);     //结果为true

该数组转换方法的原理其实并不复杂,即是将Array原型的slice()方法在arguments对象的环境中使用,以此返回对应的数组对象。

posted @ 2017-11-19 00:20  mousea  阅读(926)  评论(0编辑  收藏  举报