這篇文章主要介紹了從數組中隨機取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)); }
以上就是本章的全部內容,更多相關教學請造訪JavaScript影片教學!