JavaScript | 类数组转换为数组

4,928 阅读1分钟

js中将类数组转换为数组的几种方法

1. slice

[].slice.call(arguments)能将具有length属性的对象转成数组

[].slice === Array.prototype.slice;

slice方法如果不传参数的话会返回原数组的一个拷贝,通过call显式绑定来实现arguments变相有slice这个方法。

2. Array.from()

var arr = Array.from(arguments);

3. 扩展运算符

ES6中的扩展运算符...也能将某些数据结构转换成数组,这种数据结构必须有遍历器接口。

var args = [...arguments];

4. $.makeArray()

jQuery的此方法可以将类数组对象转化为真正的数组

var arr = $.makeArray(arguments);

转成数组的通用函数

var toArray = function(s){
    //try语句允许我们定义在执行时进行错误测试的代码块。
   //catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块。
    try{
        return Array.prototype.slice.call(s);
    } catch(e){
        var arr = [];
        for(var i = 0,len = s.length; i < len; i++){
            //arr.push(s[i]);
               arr[i] = s[i];  //据说这样比push快
        }
         return arr;
    }
}