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条件判断使用小技巧总结
Sep 08 Javascript
javascript 另一种图片滚动切换效果思路
Apr 20 Javascript
js动态在form上插入enctype=multipart/form-data的问题
May 24 Javascript
js获取电脑分辨率的思路及操作
Nov 22 Javascript
教你如何在 Javascript 文件里使用 .Net MVC Razor 语法
Jul 23 Javascript
js实现class样式的修改、添加及删除的方法
Jan 20 Javascript
javascript实现的字符串与十六进制表示字符串相互转换方法
Jul 17 Javascript
JavaScript模拟push
Mar 06 Javascript
浅谈struts1 &amp; jquery form 文件异步上传
May 25 jQuery
微信小程序有旋转动画效果的音乐组件实例代码
Aug 22 Javascript
Vue CLI3创建项目部署到Tomcat 使用ngrok映射到外网
May 16 Javascript
关于JS解构的5种有趣用法
Sep 05 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
ThinkPHP 模板substr的截取字符串函数详解
2017/01/09 PHP
PHP设计模式之抽象工厂模式实例分析
2019/03/25 PHP
PHP7创建COOKIE和销毁COOKIE的实例方法
2020/02/03 PHP
JS创建优美的页面滑动块效果 - Glider.js
2007/09/27 Javascript
Web开发者必备的12款超赞jQuery插件
2010/12/03 Javascript
javascript创建函数的20种方式汇总
2015/06/23 Javascript
Vue.js 60分钟快速入门教程
2017/03/28 Javascript
解决JS外部文件中文注释出现乱码问题
2017/07/09 Javascript
基于JavaScript实现五子棋游戏
2020/08/26 Javascript
JS中精巧的自动柯里化实现方法
2017/12/12 Javascript
浅谈node模块与npm包管理工具
2018/01/03 Javascript
js数组常用最重要的方法
2018/02/04 Javascript
vue自定v-model实现表单数据双向绑定问题
2018/09/03 Javascript
使用VUE+iView+.Net Core上传图片的方法示例
2019/01/04 Javascript
微信小程序+云开发实现欢迎登录注册
2019/05/24 Javascript
JavaScript中的连续赋值问题实例分析
2019/07/12 Javascript
vue图片加载失败时用默认图片替换的方法
2019/08/29 Javascript
layui 表单标签的校验方法
2019/09/04 Javascript
使用C语言来扩展Python程序和Zope服务器的教程
2015/04/14 Python
在Python的Django框架中用流响应生成CSV文件的教程
2015/05/02 Python
Python类定义和类继承详解
2015/05/08 Python
Python利用operator模块实现对象的多级排序详解
2017/05/09 Python
python 判断linux进程,并杀死进程的实现方法
2019/07/01 Python
通过实例解析python描述符原理作用
2020/01/22 Python
使用CSS媒体查询(Media Queries)和JavaScript判断浏览器设备类型的方法
2014/04/03 HTML / CSS
Melijoe时尚童装德国官网:Melijoe德国
2016/09/03 全球购物
英国泰坦旅游网站:全球陪同游览,邮轮和铁路旅行
2016/11/29 全球购物
理工科学生的自我评价
2013/12/15 职场文书
银行柜员求职自荐书
2014/06/18 职场文书
中华在我心中演讲稿
2014/09/13 职场文书
酒店办公室主任岗位职责
2015/04/01 职场文书
2015年质量管理工作总结范文
2015/05/18 职场文书
实用求职信模板范文
2019/05/13 职场文书
Python 居然可以在 Excel 中画画你知道吗
2022/02/15 Python
JVM之方法返回地址详解
2022/02/28 Java/Android
Python万能模板案例之matplotlib绘制甘特图
2022/04/13 Python