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 相关文章推荐
用jscript实现新建和保存一个word文档
Jun 15 Javascript
javascript 学习之旅 (1)
Feb 05 Javascript
Prototype 学习 工具函数学习($A方法)
Jul 12 Javascript
使用javascript获取flash加载的百分比的实现代码
May 25 Javascript
jquery动态增加删除表格行的小例子
Nov 14 Javascript
一个JavaScript递归实现反转数组字符串的实例
Oct 14 Javascript
JavaScript charCodeAt方法入门实例(用于取得指定位置字符的Unicode编码)
Oct 17 Javascript
jQuery 遍历函数详解
Jul 05 Javascript
微信小程序 picker 组件详解及简单实例
Jan 10 Javascript
详解tween.js 中文使用指南
Jan 05 Javascript
Vue.js 时间转换代码及时间戳转时间字符串
Oct 16 Javascript
vue项目设置scrollTop不起作用(总结)
Dec 21 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使用正则表达式清除超链接文本
2013/11/12 PHP
php文件上传的例子及参数详解
2013/12/12 PHP
php smarty truncate UTF8乱码问题解决办法
2014/06/13 PHP
PHP 实现代码复用的一个方法 traits新特性
2015/02/22 PHP
php实现的RSS生成类实例
2015/04/23 PHP
Codeigniter中集成smarty和adodb的方法
2016/03/04 PHP
关于PHP通用返回值设置方法
2017/03/31 PHP
论坛特效代码收集(落伍转发-不错)
2006/12/02 Javascript
javascript 面向对象的JavaScript类
2010/05/04 Javascript
只需一行代码,轻松实现一个在线编辑器
2013/11/12 Javascript
jquery.form.js实现将form提交转为ajax方式提交的方法
2015/04/07 Javascript
JS+CSS实现分类动态选择及移动功能效果代码
2015/10/19 Javascript
轻松实现js选项卡切换效果
2016/09/24 Javascript
JavaScript下拉菜单功能实例代码
2017/03/01 Javascript
Nodejs 和 Electron ubuntu下快速安装过程
2018/05/04 NodeJs
JS+H5 Canvas实现时钟效果
2018/07/20 Javascript
Vue 中axios配置实例详解
2018/07/27 Javascript
node.js中Buffer缓冲器的原理与使用方法分析
2019/11/23 Javascript
javascript设计模式 ? 策略模式原理与用法实例分析
2020/04/21 Javascript
如何利用vue实现波谱拟合详解
2020/11/05 Javascript
JavaScript对象访问器Getter及Setter原理解析
2020/12/08 Javascript
jquery实现淡入淡出轮播图效果
2020/12/13 jQuery
为什么推荐使用JSX开发Vue3
2020/12/28 Vue.js
python抓取豆瓣图片并自动保存示例学习
2014/01/10 Python
numpy中以文本的方式存储以及读取数据方法
2018/06/04 Python
Python中创建二维数组
2018/10/17 Python
numpy基础教程之np.linalg
2019/02/12 Python
Django+Xadmin构建项目的方法步骤
2019/03/06 Python
基于python生成英文版词云图代码实例
2020/05/16 Python
基于Python的接口自动化unittest测试框架和ddt数据驱动详解
2021/01/27 Python
CSS实现限制字数功能当对象内文本溢出时显示省略标记
2014/08/20 HTML / CSS
Madewell澳大利亚官方网站:美国休闲服饰品牌
2019/07/18 全球购物
秋季运动会加油稿200字
2014/01/11 职场文书
辩论赛开场白大全(主持人+辩手)
2015/05/29 职场文书
四年级作文之植物
2019/09/20 职场文书
「偶像大师 MILLION LIVE!」七尾百合子手办开订
2022/03/21 日漫