arguments转数组的三种方式

216 阅读1分钟

函数的arguments是伪数组,可以通过以下三种方式来转成数组,分别是遍历转,slice(ES5)转,ES6新方法转

function foo() {
  let arr = []
  //1. 遍历转
  for(let i = 0; i < arguments.length; i++){
      arr.push(arguments[i])
  }
  //2. slice转
  let arr1 = Array.prototype.slice.call(arguments);
  let arr2 = [].slice.call(arguments);
  //3. ES6新方法转
  let arr3 = Array.from(arguments);
  let arr4 = [...arguments];

  console.log(arr, arr1, arr2, arr3, arr4);
}

foo(1, 2, 3, 4, 5);