js实现从数组里随机获取元素

 更新时间:2023年07月03日 22:42:15   投稿:hebedich  
这篇文章主要介绍了js实现从数组里随机获取元素的方法,以及个人封装的js代码分享,十分的实用,这里推荐给小伙伴们

基础知识:

复制数组:

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);

是不是很好用呢,非常实用的代码

再给大家分享一个

 
//定义一个数组
var urls = ['value1','value2','value3','value4','value5'];
//随机从数组中获取一个值
var element = urls[Math.floor((Math.random()*urls.length))];
//循环测试下随机获取一个值。
for(var i=0;i<10;i++){
	var element = urls[Math.floor((Math.random()*urls.length))];
	console.log('第' + i +'次获取到:' + element);
}

随机值获取10次测试效果:

这里是从本人项目中分离出来分享给大家,希望对大家有所帮助。

相关文章

  • JavaScript获取当前时间向前推三个月的方法示例

    JavaScript获取当前时间向前推三个月的方法示例

    这篇文章主要介绍了JavaScript获取当前时间向前推三个月的方法,结合实例形式分析了javascript日期与时间运算相关操作技巧,需要的朋友可以参考下
    2017-02-02
  • vscode录音及语音实时转写插件开发并在工作区生成本地mp3文件附踩坑日记!

    vscode录音及语音实时转写插件开发并在工作区生成本地mp3文件附踩坑日记!

    以目前的vscode版本来说,作者并没有开放访问本地媒体权限,所以插件市场里面的所有语音相关插件也并没有直接获取vscode的媒体权限,这篇文章主要介绍了vscode录音及语音实时转写插件开发并在工作区生成本地mp3文件 踩坑日记!,需要的朋友可以参考下
    2023-05-05
  • 前端如何计算首屏及白屏时间代码示例

    前端如何计算首屏及白屏时间代码示例

    白屏时间是指用户进入该网站(比如刷新页面、跳转到新页面等通过该方式)的时刻开始计算,一直到页面内容显示出来之前的时间节点,这篇文章主要给大家介绍了关于前端如何计算首屏及白屏时间的相关资料,需要的朋友可以参考下
    2024-07-07
  • Javascript图像处理—平滑处理实现原理

    Javascript图像处理—平滑处理实现原理

    这里直接引用OpenCV 2.4+ C++ 平滑处理和OpenCV 2.4+ C++ 边缘梯度计算的相关内容平滑也称模糊, 是一项简单且使用频率很高的图像处理方法,需要了解的朋友可以参考下
    2012-12-12
  • 小程序click-scroll组件设计

    小程序click-scroll组件设计

    这篇文章主要介绍了小程序click-scroll组件设计,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-06-06
  • 浅析JS中的 map, filter, some, every, forEach, for in, for of 用法总结

    浅析JS中的 map, filter, some, every, forEach, for in, for of 用法总

    本文是小编给大家总结的关于javascript中的map, filter, some, every, forEach, for in, for of 用法,非常不错,具有参考借鉴价值,需要的朋友参考下吧
    2017-03-03
  • 微信小程序仿知乎实现评论留言功能

    微信小程序仿知乎实现评论留言功能

    这篇文章主要为大家详细介绍了微信小程序仿知乎实现评论留言功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • 微信小程序中实现微信支付完整步骤

    微信小程序中实现微信支付完整步骤

    这篇文章主要给大家介绍了关于微信小程序中实现微信支付的相关资料,微信小程序支付是一种常见的支付方式,实现起来相对较为复杂,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2023-11-11
  • 在JavaScript中使用严格模式(Strict Mode)

    在JavaScript中使用严格模式(Strict Mode)

    这篇文章主要介绍了在JavaScript中使用严格模式(Strict Mode),除了正常运行模式,ECMAscript 5添加了第二种运行模式:"严格模式"(strict mode)。顾名思义,这种模式使得Javascript在更严格的条件下运行。,需要的朋友可以参考下
    2019-06-06
  • javascript之解决IE下不渲染的bug

    javascript之解决IE下不渲染的bug

    javascript之解决IE下不渲染的bug...
    2007-06-06

最新评论