JavaScript伪数组(类数组)转成数组的几种方式

伪数组(类数组):具有length属性,但是不具备真正数组原型上的如push、pop等方法,其中最常见的就是函数的参数arguments

Object.prototype.toString.call()   用于区分数据类型

举例说明:

function add(){

     console.log(arguments);

    console.log(Object.prototype.toString.call(arguments) );//[object Arguments]

    //方法一

    let array1 = [...arguments]

    console.log(array1);

    console.log(Object.prototype.toString.call(array1));//[object Array]

    //方法二

    let array2 = Array.prototype.slice.call(arguments);

    console.log(array2);

    console.log(Object.prototype.toString.call(array2));//[object Array]

    //方法三

    let array3 = [].slice.call(arguments);

    console.log(array3);

    console.log(Object.prototype.toString.call(array3));//[object Array]

    //方法四

    let array4 = Array.from(arguments);

    console.log(array4);

    console.log(Object.prototype.toString.call(array4));//[object Array]

    //方法五

    let array5 = Array.prototype.concat.apply([],arguments);

    console.log(array5);

    console.log(Object.prototype.toString.call(array5));//[object Array]

}

add(1,2,3,4)

查看结果:

 

JavaScript伪数组(类数组)转成数组的几种方式