您现在的位置: 万盛学电脑网 >> 程序编程 >> 脚本专题 >> javascript >> 正文

从数组中随机取x条不重复数据的JS代码

作者:佚名    责任编辑:admin    更新时间:2022-06-22

 这篇文章主要介绍了从数组中随机取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)); }