欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Javascript從數(shù)組中隨機(jī)取出不同元素的兩種方法

 更新時(shí)間:2016年09月22日 14:45:35   作者:garfieldzf  
這篇文章給大家分享了兩種Javascript從數(shù)組中隨機(jī)取出不同元素的方法,大家可以都學(xué)習(xí)學(xué)習(xí),這樣更能有助于大家的學(xué)習(xí)和理解,下面來一起看看吧

一、常規(guī)算法

第一種方法較常規(guī),經(jīng)測(cè)試有bug,數(shù)據(jù)量大以后隨機(jī)幾次返回的對(duì)象直接是function而不是object。 當(dāng)然簡(jiǎn)單數(shù)據(jù)類型應(yīng)該沒有這個(gè)問題。

示例代碼

/**
     從數(shù)組中隨機(jī)抽取數(shù)據(jù) 2016-09-09
   **/
   function getArrItem(arr, num) {
     var temp_array = new Array();
     for (var index in arr) {
       temp_array.push(arr[index]);
     }
     var return_array = new Array();
     for (var i = 0; i < num; i++) {
       if (temp_array.length > 0) {
         var arrIndex = Math.floor(Math.random() * temp_array.length);
         return_array[i] = temp_array[arrIndex];
         temp_array.splice(arrIndex, 1);
       } else {
         break;
       }
     }
     return return_array;
   }

二、洗牌算法

第二種是使用洗牌算法,親測(cè)有效。

示例代碼

/**
      隨機(jī)化原數(shù)組
    **/
    function shuffle(array) {
      var m = array.length,
        t, i;
      // 如果還剩有元素…
      while (m) {
        // 隨機(jī)選取一個(gè)元素…
        i = Math.floor(Math.random() * m--);
        // 與當(dāng)前元素進(jìn)行交換
        t = array[m];
        array[m] = array[i];
        array[i] = t;
      }
      return array;
    }
 
//用法
var message = shuffle(totalArr);
message = message.slice(0, 3);

以上就是為大家總結(jié)的兩種Javascript從數(shù)組中隨機(jī)取出不同元素的方法,希望這篇文章能對(duì)大家的學(xué)習(xí)或者工作帶來一定的幫助,如果有疑問大家可以留言交流。

相關(guān)文章

最新評(píng)論