js实现从数组里随机获取元素


Posted in Javascript onJanuary 12, 2015

基础知识:

复制数组:

(1)循环遍历复制(不推荐)

var arry = [1,5,9,7],

    new_arry = [],

    n = 0,

    len = arry.length;

for(;n<len;n++){

    new_arry.push(arry[n]);

}

(2)concat() 方法用于连接两个或多个数组,该方法不会改变现有的数组,而仅仅会返回被连接数组的一个副本

var arry = [1,5,9,7],

    new_arry = arry.concat();

console.log(new_arry);

(3)slice() 方法可从已有的数组中返回选定的元素

var arry = [1,5,9,7],

    new_arry = arry.slice(0);

console.log(new_arry);

随机数:

Math.random()
Math.random(),返回0到1的随机数,如:0.4261967441998422

个人封装函数:

function getRandom(opt) {

    var old_arry = opt.arry,

        range = opt.range;

    //防止超过数组的长度

    range = range > old_arry.length?old_arry.length:range;

    var newArray = [].concat(old_arry), //拷贝原数组进行操作就不会破坏原数组

        valArray = [];

    for (var n = 0; n < range; n++) {

        var r = Math.floor(Math.random() * (newArray.length));

        valArray.push(newArray[r]);

        //在原数组删掉,然后在下轮循环中就可以避免重复获取

        newArray.splice(r, 1);

    }

    return valArray;

}

var new_val = getRandom({'arry':[1,6,8,0,3],'range':3});

console.log(new_val);

是不是很好用呢,非常实用的代码,这里是从本人项目中分离出来分享给大家,希望对大家有所帮助。

Javascript 相关文章推荐
js 数组操作代码集锦
Apr 28 Javascript
javascript实现字符串反转的方法
Feb 05 Javascript
jQuery实现仿Google首页拖动效果的方法
May 04 Javascript
全面解析Bootstrap表单使用方法(表单控件状态)
Nov 24 Javascript
JavaScript cookie详解及简单实例应用
Dec 31 Javascript
利用Jquery实现几款漂亮实用的时间轴(附示例代码)
Feb 15 Javascript
jQuery使用EasyUi实现三级联动下拉框效果
Mar 08 Javascript
在vue中添加Echarts图表的基本使用教程
Nov 22 Javascript
webpack 3.X学习之多页面打包的方法
Sep 04 Javascript
vue.js表单验证插件(vee-validate)的使用教程详解
May 23 Javascript
vue实现条件叠加搜索的解决方法
May 28 Javascript
vant 中van-list的用法说明
Nov 11 Javascript
javascript的tab切换原理与效果实现方法
Jan 10 #Javascript
js中的事件捕捉模型与冒泡模型实例分析
Jan 10 #Javascript
js中键盘事件实例简析
Jan 10 #Javascript
js中this的用法实例分析
Jan 10 #Javascript
js创建对象的方式总结
Jan 10 #Javascript
js对象继承之原型链继承实例
Jan 10 #Javascript
js对象的复制继承实例
Jan 10 #Javascript
You might like
PHP数据缓存技术
2007/02/14 PHP
基于curl数据采集之单页面并行采集函数get_htmls的使用
2013/04/28 PHP
ubuntu12.04使用c编写php扩展模块教程分享
2013/12/25 PHP
PHP实现爬虫爬取图片代码实例
2021/03/03 PHP
js 静态动态成员 and 信息的封装和隐藏
2011/05/29 Javascript
在jQuery ajax中按钮button和submit的区别分析
2012/10/07 Javascript
jquery easyui combox一些实用的小方法
2013/12/25 Javascript
node.js中的console.info方法使用说明
2014/12/09 Javascript
node.js中的http.request方法使用说明
2014/12/14 Javascript
AngularJS中过滤器的使用与自定义实例代码
2016/09/17 Javascript
js本地图片预览实现代码
2016/10/09 Javascript
JS中用childNodes获取子元素换行会产生一个子元素
2016/12/08 Javascript
微信小程序 配置文件详细介绍
2016/12/14 Javascript
Node.js五大应用性能技巧小结(必须收藏)
2017/08/09 Javascript
nodejs结合Socket.IO实现的即时通讯功能详解
2018/01/12 NodeJs
解决bootstrap中下拉菜单点击后不关闭的问题
2018/08/10 Javascript
详解vuex commit保存数据技巧
2018/12/25 Javascript
JS实现随机抽选获奖者
2019/11/07 Javascript
Node配合WebSocket做多文件下载以及进度回传
2019/11/07 Javascript
js正则匹配多个全部数据问题
2019/12/20 Javascript
vue+elementUI(el-upload)图片压缩,默认同比例压缩操作
2020/08/10 Javascript
一个超级简单的python web程序
2014/09/11 Python
深入解析Python中的WSGI接口
2015/05/11 Python
详解python读取和输出到txt
2019/03/29 Python
Python搭建代理IP池实现存储IP的方法
2019/10/27 Python
python3 通过 pybind11 使用Eigen加速代码的步骤详解
2020/12/07 Python
Python中对象的比较操作==和is区别详析
2021/02/12 Python
css实例教程 一款纯css3实现的超炫动画背画特效
2014/11/05 HTML / CSS
Booking.com英国官网:全球酒店在线预订网站
2018/04/21 全球购物
澳大利亚领先的孕妇服装品牌:Mamaway
2018/08/14 全球购物
辞职信模板(中英文版)
2015/02/27 职场文书
2015入党自传书范文
2015/06/26 职场文书
拿破仑传读书笔记
2015/07/01 职场文书
大学生十八大感想
2015/08/11 职场文书
员工工作失职检讨书范文!
2019/07/03 职场文书
Mysql数据库group by原理详解
2022/07/07 MySQL