0

Here is a demo.

I'm trying to output a, b, and c consecutively. But console.log() is just giving me back the first value.

function test(values){ 
    console.log(values);
} 

test('a', 'b', 'c'); 
4

7 回答 7

4

你想要arguments

console.log( arguments );

请记住arguments,虽然看起来像一个数组,但实际上是一个对象。如果需要,您可以将其转换为数组,如下所示:

var args = Array.prototype.slice.call(arguments);

或者,正如alex在评论中指出的那样,使用 jQuery,您可以简单地执行以下操作:

$.makeArray(arguments)
于 2013-10-31T04:50:44.633 回答
2

使用参数

工作小提琴

function test(values) {
    var i;
    for (i = 0; i < arguments.length; i++) {
        console.log(arguments[i]);
    }
}

test('a', 'b', 'c');
于 2013-10-31T04:51:51.897 回答
0
function test(a,b,c){ 
    console.log(a,b,c);
} 

test('a', 'b', 'c'); 

您正在创建一个函数,因此在调用此函数时该函数的参数应该匹配。所以如果你想要三个参数,那么只需在你的函数中添加三个参数。

于 2013-10-31T04:51:00.587 回答
0

这是因为您有一个只接受一个参数的函数,即values. 如果要传递abc,请将函数更改为接受三个值:

function test(val1, val2, val3){
    console.log(val1 + val2 + val3);
} 

或将a, b, and存储c在一个数组上。在您的代码中,参数的数量不匹配。

于 2013-10-31T04:51:56.413 回答
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"]
于 2013-10-31T04:52:12.937 回答
0

你的函数只有一个参数,你给它三个参数。这不会像数组一样工作 - 您必须修改代码:

function test(values){ 
    for( var i=0; i<values.length; i++)
    alert(values[i]);
} 

test(['a', 'b', 'c']); 
于 2013-10-31T04:52:18.887 回答
0

快速的答案是使用

function a( b, c, d){
 console.log(arguments);
}

a(5, 8, 9, 9, 9)将输出

[5, 8, 9, 9, 9]

顺便说一句,除了 console.log() 之外的其他功能

  • console.log(myvar, "记录!");
  • console.info(myvar, "记录!");
  • console.warn(myvar, "记录!"); console.debug(myvar, "Logged!");
  • console.error(myvar, "记录!");
于 2013-10-31T04:57:28.833 回答