2014-04-18 358 views
-2

我正在創建一個小測試遊戲類型的東西,對於它的一部分,我需要一個隨機選擇的函數。隨機選擇一個函數

我總共有2個,我只需要創建一個可能的'隨機生成器',我可以調用它,它運行2個函數之一。

function function1() { 
    ........code......... 
} 

function function2() { 
    ........code......... 
} 

function generator() { 
...random function selector... 
} 

可能像事先說^

謝謝!

+0

如果(M ath.random()<0.5)func1();其他func2();' –

+0

那麼你卡在哪裏?你有什麼嘗試,沒有奏效?你不能只在這裏轉儲一個任務,並期望有人爲你做。 – lanzz

回答

0

是的,你可以做到這一點。

var myFuncArr = ["function1","function2"]; 
function generator(){ 
    window[myFuncArr[Math.random() * (myFuncArr.length - 0) + 0]](); 
} 
+0

downvoter,照顧詳細? –

+0

有沒有需要陣列..對於簡單的隨機切換..檢查cookie怪物的評論。 –

+0

該數組是函數的名稱。它有什麼不對? –

0

JavaScript有一個eval功能評估字符串並執行它的代碼:

function generator(){ 
    min = 1; 
    max = 5; 
    random = Math.floor(Math.random() * (max - min + 1)) + min; 
    param = "myParam"; 
    eval("function"+random+"('"+param+"')"); 
} 
0

你期待這樣

function method1(){ 
    document.getElementById("sampleDiv").style.color = "red"; 
} 

function method2(){ 
    document.getElementById("sampleDiv").style.color = "yellow"; 
} 


function method3(){ 
    document.getElementById("sampleDiv").style.color = "orange"; 
} 

function generator(id) { 
    eval("method"+id+"()") 
} 

function randomIntFromInterval(min,max) 
{ 
    return Math.floor(Math.random()*(max-min+1)+min); 
} 

setInterval(function(){generator(randomIntFromInterval(1,3))},3000); 

演示: http://jsfiddle.net/hcmY9/3/