zoukankan      html  css  js  c++  java
  • 从数组中随机取n条不重复的数据

    工作中经常遇到有关数组的一些操作 

    1. 从数据中随机取n条不重复的数据 (PS:下面的S.each是KISSY.each方法,大家可以改为for循环)

    /*
     1 从数组arr中随机取n条不重复的数据
     */
     function myRand(arr,num){
        var newArr = [];
        rand(num);    //随机 n 条
    
        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.从对象中随机取n条不重复的数据

    /*
    随机从对象obj中取n条
     */
    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));
    }
  • 相关阅读:
    neo4j︱与python结合的py2neo使用教程
    Neo4j 简介 2019
    110.Java对象的序列化
    109.Java序列流
    108.Java装饰器设计模式
    107.Java中IO流_字符流的缓冲区
    106.Java中IO流_字符流的异常处理
    105.Java中IO流_字符流拷贝文件
    104.Java中IO流_字符流_Writer
    103.Java中IO流_字符流_Reader
  • 原文地址:https://www.cnblogs.com/summer_shao/p/uniqArr.html
Copyright © 2011-2022 走看看