检查javascript函数的未知输入数量

Bos*_*ohn 2 javascript

我正在使用一个记录很少的javascript API,并且需要编写回调函数,其中参数尚未记录.作为一个开始步骤,我需要检查传入的内容.如果我知道只有一个输入,我可以将回调函数设置为

function( stuff ){
    console.log(stuff);
}
Run Code Online (Sandbox Code Playgroud)

并从那里工作.当我不知道有多少输入时,是否有一种优雅的方式来检查输入?我可以做点什么

function(a,b,c,d,e,f){
    console.log(a) 
    console.log(b) // is this undefined?
    console.log(c) // how about now?
      ....
    console.log(f) // if this isn't undefined I need to do it again with more args
}
Run Code Online (Sandbox Code Playgroud)

它会很好,但它很难看.是否有更简单的方法可以找出已将多少个参与者传递给函数?

bfa*_*tto 6

循环arguments对象:

function f(){
    for(var prop in arguments) {
        console.log(arguments[prop]);
    }
}
f(1); // logs 1
f(1, 2); // logs 1, then 2
Run Code Online (Sandbox Code Playgroud)

arguments数组类似的对象一样,您也可以for根据其length属性使用常规循环对其进行迭代:

for(var i=0; i<arguments.length; i++) {
    console.log(arguments[i]);
}
Run Code Online (Sandbox Code Playgroud)