有谁知道为什么在函数内部使用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, …}]
最佳答案
在第一种情况下,您将多个参数传递给intToArray
:
intToArray(1, 2, ...)
在第二种情况下,您传递一个参数:
intToArray(arguments);
这更等同于
intToArray([1,2,3])
。在这两种情况下,都将打印一个数组,但元素数量不同。
如果要传递所有参数,请参见Passing arguments forward to another javascript function。