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 相关文章推荐
Jquery中dialog属性小记
Sep 03 Javascript
js变换显示图片的实例
Apr 16 Javascript
对jQuery的事件绑定的一些思考(补充)
Apr 20 Javascript
js获取url参数值的两种方式
Sep 10 Javascript
Bootstrap入门书籍之(三)栅格系统
Feb 17 Javascript
JavaScript实现一个带AI的井字棋游戏源码
May 21 Javascript
详解angular2.x创建项目入门指令
Oct 11 Javascript
vue 搭建后台系统模块化开发详解
May 01 Javascript
微信小程序实现录音时的麦克风动画效果实例
May 18 Javascript
JavaScript canvas基于数组生成柱状图代码实例
Mar 06 Javascript
通过实例解析JavaScript常用排序算法
Sep 02 Javascript
在vant 中使用cell组件 定义图标该图片和位置操作
Nov 02 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实现的生成静态HTML速度快类库
2007/03/31 PHP
PHP 用数组降低程序的时间复杂度
2009/12/04 PHP
深入PHP运行环境配置的详解
2013/06/04 PHP
php中mkdir()函数的权限问题分析
2016/09/24 PHP
PHP编程 SSO详细介绍及简单实例
2017/01/13 PHP
理解Javascript_14_函数形式参数与arguments
2010/10/20 Javascript
jQuery建立一个按字母顺序排列的友好页面索引(兼容IE6/7/8)
2013/02/26 Javascript
javascript 实现子父窗体互相传值的简单实例
2014/02/17 Javascript
JavaScript两种跨域技术全面介绍
2014/04/16 Javascript
基于zepto.js实现仿手机QQ空间的大图查看组件ImageView.js详解
2015/03/05 Javascript
JavaScript中的this使用详解
2016/07/27 Javascript
D3.js实现雷达图的方法详解
2016/09/22 Javascript
解决微信内置浏览器返回上一页强制刷新问题方法
2017/02/05 Javascript
原生JS实现圣旨卷轴展开效果
2017/03/06 Javascript
微信小程序 navbar实例详解
2017/05/11 Javascript
在React中如何优雅的处理事件响应详解
2017/07/24 Javascript
微信小程序之数据缓存的实例详解
2017/09/29 Javascript
详解利用Angular实现多团队模块化SPA开发框架
2017/11/27 Javascript
Vue起步(无cli)的啊教程详解
2019/04/11 Javascript
vue中的计算属性和侦听属性
2020/11/06 Javascript
小程序中手机号识别的示例
2020/12/14 Javascript
[01:07:13]TNC vs Pain 2018国际邀请赛小组赛BO2 第一场 8.17
2018/08/20 DOTA
用python + openpyxl处理excel2007文档思路以及心得
2014/07/14 Python
python定向爬取淘宝商品价格
2018/02/27 Python
Python 元类实例解析
2018/04/04 Python
python opencv 批量改变图片的尺寸大小的方法
2019/06/28 Python
基于django传递数据到后端的例子
2019/08/16 Python
flask的orm框架SQLAlchemy查询实现解析
2019/12/12 Python
用python获取txt文件中关键字的数量
2020/12/24 Python
HTML5轻松实现全屏视频背景的示例
2018/04/23 HTML / CSS
服装机修工岗位职责
2013/12/26 职场文书
2014年小学重阳节活动策划方案
2014/09/16 职场文书
四风个人对照检查材料思想汇报
2014/09/25 职场文书
第28个世界无烟日活动总结
2015/02/10 职场文书
烛光里的微笑观后感
2015/06/17 职场文书
python实现调用摄像头并拍照发邮箱
2021/04/27 Python