Javascript-随机化一系列函数

时间:2014-01-16 09:55:55

标签: javascript html

这是一个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;
    }

1 个答案:

答案 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/