이 글에서는 배열에서 중복되지 않은 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 비디오 튜토리얼을 방문하세요!