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次测试效果:

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

相关文章

  • js自定义方法通过隐藏iframe实现文件下载

    js自定义方法通过隐藏iframe实现文件下载

    通过隐藏iframe实现文件下载,不可思议吧,但确实是可以实现的,不懂的看下代码,或许可以帮助到你,而且此功能是用js实现的,感兴趣的你可不要错过了哈
    2013-02-02
  • js中call()和apply()改变指针问题的讲解

    js中call()和apply()改变指针问题的讲解

    今天小编就为大家分享一篇关于js中call()和apply()改变指针问题的讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-01-01
  • JS中mouseup事件丢失的原因与解决办法

    JS中mouseup事件丢失的原因与解决办法

    这篇文章主要跟大家介绍了关于Javascript中mouseup事件丢失的原因与解决办法的相关资料,文中给出详细的示例代码供大家参考学习,需要的朋友们下面跟着小编一起来学习学习吧。
    2017-06-06
  • js中对象与对象创建方法的各种方法

    js中对象与对象创建方法的各种方法

    这篇文章主要给大家介绍了关于js中对象与对象创建方法的各种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-02-02
  • 详解JavaScript中的this硬绑定

    详解JavaScript中的this硬绑定

    这篇文章主要为大家详细介绍了JavaScript中的this显示绑定和硬绑定,文中的示例代码讲解详细,具有一定的借鉴价值,感兴趣的可以了解一下
    2022-10-10
  • 纯JS实现根据CSS的class选择DOM

    纯JS实现根据CSS的class选择DOM

    这篇文章主要介绍了纯JS实现根据CSS的class选择DOM,需要的朋友可以参考下
    2014-03-03
  • 浅析JavaScript Array和string的转换(推荐)

    浅析JavaScript Array和string的转换(推荐)

    下面小编就为大家带来一篇浅析JavaScript Array和string的转换(推荐)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-05-05
  • JS中setTimeout()的用法详解

    JS中setTimeout()的用法详解

    setTimeout( ) 是属于 window 的 method, 但我们都是略去 window 这顶层物件名称, 这是用来设定一个时间, 时间到了, 就会执行一个指定的 method
    2013-04-04
  • JS 实现Table相同行的单元格自动合并示例代码

    JS 实现Table相同行的单元格自动合并示例代码

    Table相同行的单元格自动合并,使用js来实现此效果,具体代码下,感兴趣的朋友可以参考下
    2013-08-08
  • clipboard.js使用总结

    clipboard.js使用总结

    clipboard.js是一款轻量级的实现复制文本到剪贴板功能的JavaScript插件,本文就详细的介绍一下如何使用,感兴趣的可以了解一下
    2021-11-11

最新评论