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 相关文章推荐
javascript实现Table排序的方法
May 15 Javascript
JS实现先显示大图后自动收起显示小图的广告代码
Sep 04 Javascript
JavaScript中的Reflect对象详解(ES6新特性)
Jul 22 Javascript
jQuery实现微信长按识别二维码功能
Aug 26 Javascript
js 单引号替换成双引号,双引号替换成单引号的实现方法
Feb 16 Javascript
JS实现css hover操作的方法示例
Apr 07 Javascript
解决vue页面DOM操作不生效的问题
Mar 17 Javascript
JS实现的视频弹幕效果示例
Aug 17 Javascript
Vue中保存数据到磁盘文件的方法
Sep 06 Javascript
一步步教你利用Docker设置Node.js
Nov 20 Javascript
在vue项目中引入vue-beauty操作方法
Feb 11 Javascript
js实现的格式化数字和金额功能简单示例
Jul 30 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
阿拉伯的咖啡与水烟
2021/03/03 咖啡文化
一个php作的文本留言本的例子(五)
2006/10/09 PHP
php实现图片等比例缩放代码
2015/07/23 PHP
利用PHP如何写APP接口详解
2016/08/23 PHP
PHP使用curl函数发送Post请求的注意事项
2016/11/26 PHP
Yii2语言国际化自动配置详解
2018/08/22 PHP
iframe的onload在Chrome/Opera中执行两次Bug的解决方法
2011/03/17 Javascript
JS中的prototype与面向对象的实例讲解
2013/05/22 Javascript
JavaScript作用域链使用介绍
2013/08/29 Javascript
jQuery中extend()和fn.extend()方法详解
2015/06/03 Javascript
AngularJs  unit-testing(单元测试)详解
2016/09/02 Javascript
ES6扩展运算符的用途实例详解
2017/08/20 Javascript
浅谈用Webpack路径压缩图片上传尺寸获取的问题
2018/02/22 Javascript
jQuery滑动效果实现方法分析
2018/09/05 jQuery
详解Vue 动态组件与全局事件绑定总结
2018/11/11 Javascript
vue请求服务器数据后绑定不上的解决方法
2019/10/30 Javascript
Python开发实例分享bt种子爬虫程序和种子解析
2014/05/21 Python
Python比较文件夹比另一同名文件夹多出的文件并复制出来的方法
2015/03/05 Python
Python中 Lambda表达式全面解析
2016/11/28 Python
pygame 精灵的行走及二段跳的实现方法(必看篇)
2017/07/10 Python
Pycharm技巧之代码跳转该如何回退
2017/07/16 Python
python在ubuntu中的几种安装方法(小结)
2017/12/08 Python
tensorflow TFRecords文件的生成和读取的方法
2018/02/06 Python
Python实现的爬取百度文库功能示例
2019/02/16 Python
python仿抖音表白神器
2019/04/08 Python
新手如何发布Python项目开源包过程详解
2019/07/11 Python
python中for循环把字符串或者字典添加到列表的方法
2019/07/20 Python
python SVD压缩图像的实现代码
2019/11/05 Python
python 发送get请求接口详解
2020/11/17 Python
优瑞自动咖啡机官网:Jura
2018/09/29 全球购物
前台接待岗位职责
2013/12/03 职场文书
群众路线教育实践活动个人对照检查材料思想汇报(社区班子)
2014/10/06 职场文书
先进班集体申报材料
2014/12/26 职场文书
学校计划生育责任书
2015/05/09 职场文书
2016年“我们的节日·重阳节”主题活动总结
2016/04/01 职场文书
导游词之湖州-太湖
2019/10/11 职场文书