这是demo。
我正在尝试连续输出a
,b
和c
。但是console.log()
只是给了我第一个值。
function test(values){
console.log(values);
}
test('a', 'b', 'c');
答案 0 :(得分:4)
您想要arguments
:
console.log( arguments );
请记住arguments
,虽然看起来像一个数组,但实际上是一个对象。如果需要,您可以将其转换为数组:
var args = Array.prototype.slice.call(arguments);
或者,正如alex在评论中指出的那样,使用jQuery你可以做到:
$.makeArray(arguments)
答案 1 :(得分:2)
function test(values) {
var i;
for (i = 0; i < arguments.length; i++) {
console.log(arguments[i]);
}
}
test('a', 'b', 'c');
答案 2 :(得分:0)
function test(a,b,c){
console.log(a,b,c);
}
test('a', 'b', 'c');
您正在创建一个函数,因此在调用此函数时,该函数的参数应该匹配。因此,如果您需要三个参数,那么只需在函数中添加三个参数即可。
答案 3 :(得分:0)
这是因为你有一个只接受values
的单个参数的函数。如果您想要传递a
,b
和c
,请将您的函数更改为接受三个值:
function test(val1, val2, val3){
console.log(val1 + val2 + val3);
}
或将a
,b
和c
存储在数组中。在您的代码中,参数的数量不匹配。
答案 4 :(得分:0)
您可以使用javascript变量参数
function blah() {
console.log(arguments);
}
blah(1, 2); // [1, 2]
blah([1, 2], [3]); // [[1,2], [3]]
blah(1, [2, 3], "string"); // [1, [2, 3], "string"]
答案 5 :(得分:0)
你的功能只有一个参数,你给它三个参数。这不会像数组一样 - 你必须修改代码:
function test(values){
for( var i=0; i<values.length; i++)
alert(values[i]);
}
test(['a', 'b', 'c']);
答案 6 :(得分:0)
快速回答是使用
function a( b, c, d){
console.log(arguments);
}
a(5, 8, 9, 9, 9)
将输出
[5, 8, 9, 9, 9]
顺便说一句,除了console.log()之外,还可以获取其他功能的战利品