Arguments Object将我的数组转换为列表? JavaScript的

时间:2015-11-10 19:50:09

标签: javascript arrays list object arguments

有谁知道为什么在函数内部使用console.log会返回一个列表而不是目标数组?

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

function printArray() {
  console.log(intToArray(arguments));
}

console.log(intToArray(1,2,3,3,4,4,5,6,7,8,8,9));
// [1, 2, 3, 3, 4, 4, 5, 6, 7, 8, 8, 9]

printArray(1,2,3,3,4,4,5,6,7,8,8,9);
// [0:  {0: 1, 1: 2, 2: 3, 3: 3, 4: 4, 5: 4, …}]

1 个答案:

答案 0 :(得分:1)

在第一种情况下,您将多个参数传递给intToArray

intToArray(1, 2, ...)

在第二种情况下,您传递单个参数:

intToArray(arguments);

这更像是intToArray([1,2,3])

在这两种情况下都会打印一个数组,但元素数量不同。

如果您想传递所有参数,请参阅Passing arguments forward to another javascript function