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----文件操作
Jan 18 Javascript
Javascript(AJAX)解析XML的代码(兼容FIREFOX/IE)
Jul 11 Javascript
jquery让返回的内容显示在特定div里(代码少而精悍)
Jun 23 Javascript
JS实现点击按钮获取页面高度的方法
Nov 02 Javascript
jQuery实现动态文字搜索功能
Jan 05 Javascript
Vue.js实现简单动态数据处理
Feb 13 Javascript
d3.js实现立体柱图的方法详解
Apr 28 Javascript
ReactNative踩坑之配置调试端口的解决方法
Jul 28 Javascript
Node解决简单重复问题系列之Excel内容的获取
Jan 02 Javascript
微信小程序第三方框架对比 之 wepy / mpvue / taro
Apr 10 Javascript
vue实现简单的日历效果
Sep 24 Javascript
利用H5api实现时钟的绘制(javascript)
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 addslashes和mysql_real_escape_string
2010/01/24 PHP
献给php初学者(入门学习经验谈)
2010/10/12 PHP
测试php函数的方法
2013/11/13 PHP
PHP面向对象程序设计之接口用法
2014/08/20 PHP
javascript使用中为什么10..toString()正常而10.toString()出错呢
2013/01/11 Javascript
js设置文本框中焦点位置在最后的示例代码(简单实用)
2014/03/04 Javascript
javascript实现限制上传文件大小
2015/02/06 Javascript
js实现文本框支持加减运算的方法
2015/08/19 Javascript
JavaScript字符串常用的方法
2016/03/10 Javascript
vue2单元测试环境搭建
2018/05/24 Javascript
浅谈Webpack下多环境配置的思路
2018/06/27 Javascript
vuex2中使用mapGetters/mapActions报错的解决方法
2018/10/20 Javascript
详解webpack打包第三方类库的正确姿势
2018/10/20 Javascript
150行代码带你实现微信小程序中的数据侦听
2019/05/17 Javascript
typescript nodejs 依赖注入实现方法代码详解
2019/07/21 NodeJs
js中的面向对象之对象常见创建方法详解
2019/12/16 Javascript
js实现盒子滚动动画效果
2020/08/09 Javascript
[01:43]深扒TI7聊天轮盘语音出处4
2017/05/11 DOTA
Python字符串转换成浮点数函数分享
2015/07/24 Python
python利用正则表达式搜索单词示例代码
2017/09/24 Python
Python动态参数/命名空间/函数嵌套/global和nonlocal
2019/05/29 Python
ORM Django 终端打印 SQL 语句实现解析
2019/08/09 Python
Python实现打印实心和空心菱形
2019/11/23 Python
pip install 使用国内镜像的方法示例
2020/04/03 Python
python基于pexpect库自动获取日志信息
2021/02/01 Python
python爬虫爬取某网站视频的示例代码
2021/02/20 Python
使用CSS实现阅读进度条
2017/02/27 HTML / CSS
html5中嵌入视频自动播放的问题解决
2020/05/25 HTML / CSS
文明工地标语
2014/06/16 职场文书
重阳节活动总结
2014/08/27 职场文书
大学生实习证明
2015/06/16 职场文书
傲慢与偏见读书笔记
2015/06/29 职场文书
2016年基层党组织公开承诺书
2016/03/25 职场文书
MySQL入门命令之函数-单行函数-流程控制函数
2021/04/05 MySQL
解决jupyter notebook图片显示模糊和保存清晰图片的操作
2021/04/24 Python
python实现手机推送 代码也就10行左右
2022/04/12 Python