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导出txt示例代码
Jan 14 Javascript
JS通过ajax动态读取xml文件内容的方法
Mar 24 Javascript
jQuery结合CSS制作漂亮的select下拉菜单
May 03 Javascript
学习Bootstrap组件之下拉菜单
Jul 28 Javascript
将html页面保存成图片,图片写入pdf的实现方法(推荐)
Sep 17 Javascript
JavaScript实现时钟滴答声效果
Jan 29 Javascript
jquery dataTable 获取某行数据
May 05 jQuery
基于JavaScript中字符串的match与replace方法(详解)
Dec 04 Javascript
vue项目中引入noVNC远程桌面的方法
Mar 05 Javascript
vue解决使用webpack打包后keep-alive不生效的方法
Sep 01 Javascript
详解Vue前端生产环境发布配置实战篇
May 07 Javascript
vue+elementUI实现图片上传功能
Aug 20 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语法速查表
2006/12/06 PHP
adodb与adodb_lite之比较
2006/12/31 PHP
PHP5中的this,self和parent关键字详解教程
2007/03/19 PHP
php实现简单爬虫的开发
2016/03/28 PHP
什么是PHP文件?如何打开PHP文件?
2017/06/27 PHP
深入理解Yii2.0乐观锁与悲观锁的原理与使用
2017/07/26 PHP
thinkPHP5框架导出Excel文件简单操作示例
2018/08/03 PHP
QQ登录简单实现代码
2021/03/09 Javascript
js中的push和join方法使用介绍
2013/10/08 Javascript
JS实现点击图片在当前页面放大并可关闭的漂亮效果
2013/10/18 Javascript
JS实现的简洁二级导航菜单雏形效果
2015/10/13 Javascript
js实现表单提交后不重新刷新当前页面
2016/11/30 Javascript
django中使用vue.js的要点总结
2019/07/07 Javascript
js中的面向对象之对象常见创建方法详解
2019/12/16 Javascript
[55:48]VGJ.S vs TNC Supermajor 败者组 BO3 第二场 6.6
2018/06/07 DOTA
[52:12]FNATIC vs Infamous 2019国际邀请赛小组赛 BO2 第一场 8.16
2019/08/19 DOTA
详解Python中DOM方法的动态性
2015/04/11 Python
Python字符串处理实现单词反转
2017/06/14 Python
python使用itchat实现手机控制电脑
2018/02/22 Python
python plotly画柱状图代码实例
2019/12/13 Python
如何基于pythonnet调用halcon脚本
2020/01/20 Python
python同义词替换的实现(jieba分词)
2020/01/21 Python
Django用数据库表反向生成models类知识点详解
2020/03/25 Python
python给list排序的简单方法
2020/12/10 Python
利用CSS3的线性渐变linear-gradient制作边框的示例
2016/06/02 HTML / CSS
全球速卖通巴西站点:Aliexpress巴西
2016/08/24 全球购物
Moda Italia荷兰:意大利男士服装
2019/08/31 全球购物
优秀毕业生求职信范文
2014/01/02 职场文书
竞聘演讲稿精彩开头和结尾
2014/05/14 职场文书
班训口号大全
2014/06/18 职场文书
酒后驾车标语
2014/06/30 职场文书
查摆问题整改措施
2014/10/24 职场文书
机器人瓦力观后感
2015/06/12 职场文书
边城读书笔记
2015/06/29 职场文书
暑假打工感想
2015/08/07 职场文书
如何写一份成功的商业计划书
2019/06/25 职场文书