我已按照上一个问题的答案,但我没有得到结果。 我正在生成一个随机数,根据数字,我想调用四个函数中的一个:
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;
}
答案 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();
。你最好避免这些。