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 Code实现IE邮件转发新浪微博
Jul 03 Javascript
javascript实用小函数使用介绍
Nov 11 Javascript
浅析hasOwnProperty方法的应用
Nov 20 Javascript
jQuery选择器简明总结(含用法实例,一目了然)
Apr 25 Javascript
js控制多图左右滚动切换效果代码分享
Aug 26 Javascript
javascript日期操作详解(脚本之家整理)
Sep 05 Javascript
jQuery多文件异步上传带进度条实例代码
Aug 16 Javascript
基于JavaScript实现鼠标向下滑动加载div的代码
Aug 31 Javascript
使用node.js中的Buffer类处理二进制数据的方法
Nov 26 Javascript
使用JavaScript触发过渡效果的方法
Jan 19 Javascript
浅谈webpack 自动刷新与解析
Apr 09 Javascript
vue cli3 调用百度翻译API翻译页面的实现示例
Sep 13 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 身份验证方面的函数
2009/10/11 PHP
php四种基础算法代码实例
2013/10/29 PHP
Yii2使用表单上传文件的实例代码
2017/08/03 PHP
PHP绕过open_basedir限制操作文件的方法
2018/06/10 PHP
记录Yii2框架开发微信公众号遇到的问题及解决方法
2018/07/20 PHP
PHP扩展安装方法步骤解析
2020/11/24 PHP
学习ExtJS accordion布局
2009/10/08 Javascript
如何设置一定时间内只能发送一次请求
2014/02/28 Javascript
为何JS操作的href都是javascript:void(0);呢
2015/11/12 Javascript
jQuery each函数源码分析
2016/05/25 Javascript
Vue.js第一天学习笔记(数据的双向绑定、常用指令)
2016/12/01 Javascript
关于Vue Router中路由守卫的应用及在全局导航守卫中检查元字段的方法
2018/12/09 Javascript
[03:02]安得倚天剑,跨海斩长鲸——中国军团出征DOTA2国际邀请赛
2018/08/14 DOTA
python的re模块应用实例
2014/09/26 Python
python机器学习之神经网络实现
2018/10/13 Python
Python饼状图的绘制实例
2019/01/15 Python
python抖音表白程序源代码
2019/04/07 Python
Django项目创建到启动详解(最全最详细)
2019/09/07 Python
python深copy和浅copy区别对比解析
2019/12/26 Python
pytorch载入预训练模型后,实现训练指定层
2020/01/06 Python
Pytorch中膨胀卷积的用法详解
2020/01/07 Python
pycharm 更改创建文件默认路径的操作
2020/02/15 Python
Numpy 多维数据数组的实现
2020/06/18 Python
python 如何对logging日志封装
2020/12/02 Python
Beach Bunny Swimwear官网:设计师泳装和性感比基尼
2019/03/13 全球购物
后勤自我鉴定
2013/10/13 职场文书
音乐教学案例
2014/01/30 职场文书
公司财务流程之主管工作流程
2014/03/03 职场文书
三好学生个人先进事迹材料
2014/05/17 职场文书
人力资源管理专业毕业生自荐书
2014/05/25 职场文书
会计求职信怎么写
2015/03/20 职场文书
企业承诺书格式范文
2015/04/28 职场文书
2015年党员个人工作总结
2015/05/13 职场文书
英语导游欢迎词
2015/09/30 职场文书
MySQL完整性约束的定义与实例教程
2021/05/30 MySQL
微信小程序 WeUI扩展组件库的入门教程
2022/04/21 Javascript