>웹 프론트엔드 >JS 튜토리얼 >배열에서 x개의 중복되지 않은 데이터를 무작위로 선택하는 JS 코드

배열에서 x개의 중복되지 않은 데이터를 무작위로 선택하는 JS 코드

PHPz
PHPz원래의
2016-05-16 17:07:221316검색

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.