JavaScript:从Array调用函数

时间:2016-03-30 15:25:28

标签: javascript

我已按照上一个问题的答案,但我没有得到结果。 我正在生成一个随机数,根据数字,我想调用四个函数中的一个:

var functionArray[single, double, triple, quadruple];

function main() {
    ranNum = Math.floor(Math.random() * functionArray.length);
    x = functionArray[ranNum](); /* is this the way to call the function? */
}

/* example of one function in the array */
function single() {
    /* do stuff */
    return x;
}

1 个答案:

答案 0 :(得分:7)

您正在错误地初始化数组:

var query = Chat.aggregate(
    {
        $match:{
            $or:[
                {'user1':data}, 
                {'user2':data}
            ]
        }
    }, 
    {
        $group : { 
            _id: '$user1', 
            receiver : { $first: '$user1' }, 
            sender : { $first: 'user2' } 
        }
    }, 
    {
        $project : {"_id":0, "user1":1, "user2":1}
    }
);

应该是:

var functionArray[single, double, triple, quadruple];

然后它应该工作!

var functionArray = [single, double, triple, quadruple];
  

这是调用函数的方法吗?

是的,你可以这样称呼它。但是,如果你只执行Function.prototype.call

,可能会更清楚
x = functionArray[ranNum](); 

另请注意,您使用reserved words,例如x = functionArray[ranNum].call(); 。你最好避免这些。