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


Posted in Javascript onDecember 24, 2013

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

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 相关文章推荐
javascript表单验证和Window详解
Dec 11 Javascript
详谈jQuery操纵DOM元素属性 attr()和removeAtrr()方法
Jan 22 Javascript
JavaScript模板引擎用法实例
Jul 10 Javascript
jQuery form 表单验证插件(fieldValue)校验表单
Jan 24 Javascript
浅析jquery数组删除指定元素的方法:grep()
May 19 Javascript
JavaScript知识点总结(十一)之js中的Object类详解
May 31 Javascript
完美实现js选项卡切换效果(一)
Mar 08 Javascript
ES6中Generator与异步操作实例分析
Mar 31 Javascript
详解Angular2中Input和Output用法及示例
May 21 Javascript
javaScript实现复选框全选反选事件详解
Nov 20 Javascript
详谈Object.defineProperty 及实现数据双向绑定
Jul 18 Javascript
javascript中call,apply,bind的区别详解
Dec 11 Javascript
JS过滤url参数特殊字符的实现方法
Dec 24 #Javascript
JS控制图片等比例缩放的示例代码
Dec 24 #Javascript
JS 屏蔽按键效果与改变按键效果的示例代码
Dec 24 #Javascript
js清除input中type等于file的值域(示例代码)
Dec 24 #Javascript
js 获取、清空input type=&quot;file&quot;的值(示例代码)
Dec 24 #Javascript
jQuery点击自身以外地方关闭弹出层的简单实例
Dec 24 #Javascript
JS刷新当前页面的几种方法总结
Dec 24 #Javascript
You might like
php 数组使用详解 推荐
2011/06/02 PHP
PHP 验证码的实现代码
2011/07/17 PHP
php的XML文件解释类应用实例
2014/09/22 PHP
PHP strip_tags() 去字符串中的 HTML、XML 以及 PHP 标签的函数
2016/05/22 PHP
PHP实现的贪婪算法实例
2017/10/17 PHP
详解Laravel设置多态关系模型别名的方式
2019/10/17 PHP
jQuery+jqmodal弹出窗口实现代码分明
2010/06/14 Javascript
基于jquery的实现简单的表格中增加或删除下一行
2010/08/01 Javascript
JavaScript日历实现代码
2010/09/12 Javascript
JavaScript高级程序设计(第3版)学习笔记6 初识js对象
2012/10/11 Javascript
JavaScript之Getters和Setters 平台支持等详细介绍
2012/12/07 Javascript
两个listbox实现选项的添加删除和搜索
2013/03/01 Javascript
详解AngularJS中module模块的导入导出
2015/12/10 Javascript
基于javascript html5实现多文件上传
2016/03/03 Javascript
JavaScript中const、var和let区别浅析
2016/10/11 Javascript
原生js实现中奖信息无间隙滚动效果
2017/01/18 Javascript
Vue.js上下滚动加载组件的实例代码
2017/07/17 Javascript
深入koa-bodyparser原理解析
2019/01/16 Javascript
详解如何实现Element树形控件Tree在懒加载模式下的动态更新
2019/04/25 Javascript
vue 自定义组件的写法与用法详解
2020/03/04 Javascript
vue项目打包为APP,静态资源正常显示,但API请求不到数据的操作
2020/09/12 Javascript
JavaScript 如何在浏览器中使用摄像头
2020/12/02 Javascript
详解javascript脚本何时会被执行
2021/02/05 Javascript
浅谈Python中的数据类型
2015/05/05 Python
python+matplotlib实现礼盒柱状图实例代码
2018/01/16 Python
django从请求到响应的过程深入讲解
2018/08/01 Python
pytorch numpy list类型之间的相互转换实例
2019/08/18 Python
Python使用__new__()方法为对象分配内存及返回对象的引用示例
2019/09/20 Python
python 使用pygame工具包实现贪吃蛇游戏(多彩版)
2019/10/30 Python
pytorch 实现L2和L1正则化regularization的操作
2021/03/03 Python
使用CSS变量实现炫酷惊人的悬浮效果
2019/04/26 HTML / CSS
html2canvas生成的图片偏移不完整的解决方法
2020/05/19 HTML / CSS
俄罗斯街头服装品牌:Black Star Wear
2017/03/01 全球购物
中国汽车租赁行业头部企业:一嗨租车
2019/05/16 全球购物
Bravofly德国:预订廉价航班和酒店
2019/09/22 全球购物
win10蓝屏0xc0000001安全模式进不了怎么办?win10出现0xc0000001的解决方法
2022/08/05 数码科技