萬盛學電腦網

 萬盛學電腦網 >> 腳本專題 >> javascript >> 從數組中隨機取x條不重復數據的JS代碼

從數組中隨機取x條不重復數據的JS代碼

 這篇文章主要介紹了從數組中隨機取x條不重復數據的JS代碼,有需要的朋友可以參考一下

工作中經常遇到有關數組的一些操作    1. 從數據中隨機取x條不重復的數據 (PS:下面的S.each是KISSY.each方法,大家可以改為for循環)   代碼如下: /* 從數組arr中隨機取x條不重復的數據  */  function myRand(arr,num){     var newArr = [];     rand(num);    //隨機 x 個       function rand(k){         if(k==0){             return;         }         var index = Math.floor(Math.random() * arr.length);         var flag = true;         S.each(newArr,function(v){             if(v == arr[index]){                 flag = false;             }         });         if(flag){             newArr.push(arr[index]);             k--;         }         rand(k);     }     return newArr;  }       2.從對象中隨機取x條不重復的數據    代碼如下: /* 隨機從對象obj中取x條  */ function myRand(){     var S = KISSY;     var obj={         '01':{name:'a'},         '02':{name:'b'},         '03':{name:'c'},         '04':{name:'d'},         '05':{name:'e'},         '06':{name:'f'},         '07':{name:'g'},         '08':{name:'h'},         '09':{name:'i'},         '10':{name:'g'}     };     var arr = [];     S.each(obj,function(v,k){         arr.push(k);     });     //隨機取3個     var newArr = myRand(arr,3);     S.each(newArr,function(b){         console.log(obj[b]);     }) };     3. 去除數組的重復項   代碼如下: /* 去除數組的重復項  */ function uniqArr(arr){     function toObject(a) {         var o = {};         for (var i=0, j=a.length; i<j; i=i+1) {             o[a[i]] = true;         }         return o;     };     function keys(o) {         var a=[], i;         for (i in o) {             if (o.hasOwnProperty(i)) { // 這裡, YUI源碼中是lang.hasOwnProperty(o, i)                 a.push(i);             }         }         return a;     };     return keys(toObject(arr)); }
copyright © 萬盛學電腦網 all rights reserved