arguments转化成数组的方法

今天写代码的时候,遇到一个关于arguments的问题,就简单总结了几种方法,
一般网上的文章都是介绍1种或2种,我这里给了5种,拿去不谢!!!
具体方法如下:

简单说一下arguments,arguments 就是函数内一个內建对象,它包含函数接收到的所有变量;所以,在实际开发中,我们使用arguments可以很方便的获取到所有的实参,并且也需要对其使用是写数组的方法。它与数组一样有索引以及length的属性。但是却不能使用数组的方法。

1,比较常用的方法

function transformsArrs() {
     var arr = [];
    for (var i = 0; i < arguments.length; i++) {
        arr.push(arguments[i]);
    }
    return arr;
}

2.Array.prototype.slice.call();

function transformsArrs() {
    console.log(arguments instanceof Array); // false 
    var argsArray = Array.prototype.slice.call(arguments);
    console.log(argsArray instanceof Array); // true 
}

3.扩展运算符,因为它是一个对象

function transformsArrs() {
    console.log(arguments instanceof Array); // false 
    var argsArray = [...arguments ];
    console.log(argsArray instanceof Array); // true 
}

4.Array.from(); ES6里的方法

function transformsArrs() {
    console.log(arguments instanceof Array); // false 
    var argsArray = Array.from(arguments);
    console.log(argsArray instanceof Array); // true 
}

5.[].slice.call(); 和Array.prototype.slice.call();类似,只是一个用的是数组,一个用的是数组原型;

function transformsArrs() {
    console.log(arguments instanceof Array); // false 
    var argsArray = [].slice.call(arguments);
    console.log(argsArray instanceof Array); // true 
}

结束!干脆!利索!

你可能感兴趣的:(arguments转化成数组的方法)