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