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对象的环境中使用,以此返回对应的数组对象。