这是一个javascript代码。我收集了10个函数 card11()到 card25()。在另一个HTML代码中单击鼠标,我希望随机调用这些函数的一个。我应用了以下逻辑,但似乎存在缺陷。请帮忙!
arr=[card11(), card12(), card13(), card14(), card15(), card21(), card22(), card23() , card24(), card25()];
function myFunc(arr)
{
var d, c, b = arr.length;
while (b)
{
c = Math.floor(Math.random() * b);
d = arr[--b];
arr[b] = arr[c];
arr[c] = d;
}
return arr;
}
答案 0 :(得分:2)
首先,数组应包含对函数的引用,而不是执行函数:
var arr=[card11, card12, card13, card14, card15, card21, card22, card23 , card24, card25];
接下来,您可以使用此函数轻松调用该数组的随机函数:
function callRandom(arr){
arr[Math.floor(Math.random() * arr.length)]();
}
使用示例
function func1(){
alert("func2");
}
function func2(){
alert("func1");
}
function func3(){
alert("func1");
}
var arr = [func1, func2, func3];
function callRandom(arr){
arr[Math.floor(Math.random() * arr.length)]();
}
callRandom(arr);
JS小提琴: http://jsfiddle.net/cqLLV/1/