从数组中随机取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 相关文章推荐
(JS实现)MapBar中坐标的加密和解密的脚本
May 16 Javascript
jquery 图片轮换效果
Jul 29 Javascript
基于Jquery的开发个代阴影的对话框效果代码
Jul 28 Javascript
js遍历td tr等html元素
Dec 13 Javascript
JQuery实现表格中相同单元格合并示例代码
Jun 26 Javascript
jquery中each遍历对象和数组示例
Aug 05 Javascript
jQuery实现新消息闪烁标题提示的方法
Mar 11 Javascript
轻松学习jQuery插件EasyUI EasyUI实现拖放商品放置购物车
Nov 30 Javascript
使用jQuery处理AJAX请求的基础学习教程
May 10 Javascript
Three.js中网格对象MESH的属性与方法详解
Sep 27 Javascript
Vue的elementUI实现自定义主题方法
Feb 23 Javascript
详解JavaScript添加给定的标签选项
Sep 17 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获取URL中带#号等特殊符号参数的解决方法
2014/09/02 PHP
php实现singleton()单例模式实例
2014/11/06 PHP
Yii入门教程之Yii安装及hello world
2014/11/25 PHP
php通过strpos查找字符串出现位置的方法
2015/03/17 PHP
Laravel使用支付宝进行支付的示例代码
2017/08/16 PHP
PHP实现动态创建XML文档的方法
2018/03/30 PHP
不要在cookie中使用特殊字符的原因分析
2010/07/13 Javascript
javascript (用setTimeout而非setInterval)
2011/12/28 Javascript
JavaScript关闭当前页面(窗口)不带任何提示
2014/03/26 Javascript
瀑布流布局代码一例
2014/04/11 Javascript
javascript event在FF和IE的兼容传参心得(绝对好用)
2014/07/10 Javascript
Jquery实现鼠标移动放大图片功能实例
2015/03/25 Javascript
js实现的倒计时按钮实例
2015/06/24 Javascript
js实现仿阿里巴巴城市选择框效果实例
2015/06/24 Javascript
jQuery对checkbox 复选框的全选全不选反选的操作
2016/08/09 Javascript
vue.js表格分页示例
2016/10/18 Javascript
js通过指定下标或指定元素进行删除数组的实例
2017/01/12 Javascript
BootStrap的两种模态框方式
2017/05/10 Javascript
详解如何用webpack打包一个网站应用项目
2017/07/12 Javascript
vue form check 表单验证的实现代码
2018/12/09 Javascript
js实现点击烟花特效
2020/10/14 Javascript
[01:06] DOTA2英雄背景故事第三期之秩序法则光之守卫
2020/07/07 DOTA
python定时检查启动某个exe程序适合检测exe是否挂了
2013/01/21 Python
浅述python中argsort()函数的实例用法
2017/03/30 Python
Python实现统计文本文件字数的方法
2017/05/05 Python
django使用xlwt导出excel文件实例代码
2018/02/06 Python
对Python字符串中的换行符和制表符介绍
2018/05/03 Python
Python3利用openpyxl读写Excel文件的方法实例
2021/02/03 Python
写一个函数返回1+2+3+…+n的值(假定结果不会超过长整型变量的范围)
2014/09/05 面试题
班组长岗位职责
2014/03/03 职场文书
可口可乐广告词
2014/03/20 职场文书
宾馆仓管员岗位职责
2014/07/27 职场文书
英语读书笔记
2015/07/02 职场文书
幼儿教师师德培训心得体会
2016/01/09 职场文书
2017元旦晚会开幕词
2016/03/03 职场文书
Vue操作Storage本地化存储
2022/04/29 Vue.js