Skip to content

怎么把函数中的 arguments 转成数组?

Posted on:2024年8月10日 at 17:06

函数中的 arguments 是一个对象,不是一个数组,严格来说它是一个类数组对象。

1、调用数组的原型方法来转换

var foo = function (a, b) {
  var arr = Array.prototype.slice.call(arguments);
  console.log(arr);
};
foo(1, 2); //(2) [1, 2]

2、使用ES6的新语法 Array.from() 来转换

Array.from 方法用于将两类对象转为真正的数组:类似数组的对象和可遍历对象(包括Set和Map)。

var foo = function (a, b) {
  var arr = Array.from(arguments);
  console.log(arr);
};
foo(1, 2); // (2) [1, 2]

3、使用 for

使用 for 循环挨个将 arguments 对象中的内容复制给新数组中

function toArray() {
  var args = [];
  for (var i = 1; i < arguments.length; i++) {
    args.push(arguments[i]);
  }
  return args;
}

4、利用 ES6 中的 rest 参数转换

let a = (…args) => args;
原文转自:https://fe.ecool.fun/topic/c51ba9d2-f3d9-4b38-8f33-f962fa4983ea