2013-05-22 139 views
0

我想從使用JavaScript的數組中產生隨機結果。我的目標是,當用戶單擊按鈕時,我想從名爲'favorites'的數組中隨機獲取結果。它只在頁面刷新後才起作用,但當您第二次點擊它時,它會返回相同的結果。從數組生成隨機結果

$('#button').click(function(){ 
     var favorites = ["http://google.com", "http://yahoo.com", "http://msn.com", "http://apple.com"]; 
     var favorite = favorites[Math.floor(Math.random() * favorites.length)]; 
     var postmessage = "hi my favorite site is " + favorite; 
     alert(postmessage); 
    }); 
+5

似乎沒什麼問題http://jsfiddle.net/arunpjohny/Sj74K/1/ –

+0

我會移動陣列外面但它看起來好 – mplungjan

回答

1

請嘗試下面的代碼。

$('#button').click(function(){ 
    var favorites = ["http://google.com", "http://yahoo.com", "http://msn.com", "http://apple.com"]; 
    var favorite = $.rand(favorites);; 
    var postmessage = "hi my favorite site is " + favorite; 
    alert(postmessage); 
}); 


(function($) { 
    $.rand = function(arg) { 
     if ($.isArray(arg)) { 
      return arg[$.rand(arg.length)]; 
     } else if (typeof arg === "number") { 
      return Math.floor(Math.random() * arg); 
     } else { 
      return 4; // chosen by fair dice roll 
     } 
    }; 
})(jQuery); 

更新小提琴:

http://jsfiddle.net/Sj74K/2/

感謝,

溼婆

+0

爲什麼?我們只需要使用「===」來檢查類型。我對嗎 ? – SivaRajini

+0

你好,謝謝 –