javascript获取不重复的随机数的方法比较

 更新时间:2008年09月08日 20:07:25   作者:  
js永不重复随机数实现代码比较

不重复的随机数方案1:1531 毫秒
一般的思路是先创建一个1-3000的数组,每一次取出一个,然后让这个数组减少一个, 取一个,减少一个,这样就可以做到永不重复了。


[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]

不重复的随机数方案2:297毫秒
但是方案1采用了slice方法,此方法重新生成数组,会大量占用内存和cpu运算, 效率很低,所以改良一下,从原始数组取出一个数, 然后让原始数组的这个位置赋值为null 。这样下一次取数的时候判断如果为null就不取,直到不为null为止。 经过测试,可以显著提高效率。

[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]

不重复的随机数方案3:234毫秒
换一个思路,如果把原始数组origin打散,然后再依次打印,
这样也可以做到随机永不重复,而且效率更高,
因为方案2运行到越后面,原始数组为null的频率就越高,运算的次数就越多。

[Ctrl+A 全选 注:引入外部Js需再刷新一下页面才能执行]

相关文章

  • 基于JS实现一个随机生成验证码功能

    基于JS实现一个随机生成验证码功能

    这篇文章主要介绍了基于JS实现一个随机生成验证码功能,随机生成一个四位数的验证码,本文通过实例代码给大家介绍的非常详细具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-05-05
  • ES6中class类用法实例浅析

    ES6中class类用法实例浅析

    这篇文章主要介绍了ES6中class类用法,结合实例形式分析了ES6中类的实现方法与相关语法使用技巧,需要的朋友可以参考下
    2017-04-04
  • babel的使用及安装配置教程

    babel的使用及安装配置教程

    babel是一个广泛使用的转码器,可以将ES6代码转化为ES5代码,从而在现有环境执行。这篇文章主要介绍了babel的使用以及安装配置,需要的朋友可以参考下
    2018-02-02
  • JavaScript校验Number(4,1)格式的数字实例代码

    JavaScript校验Number(4,1)格式的数字实例代码

    这篇文章主要介绍了JavaScript校验Number(4,1)格式的数字实例代码,本文实现思路明确代码简单易懂,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2017-03-03
  • 微信小程序单选框自定义赋值

    微信小程序单选框自定义赋值

    这篇文章主要介绍了微信小程序单选框如何自定义赋值,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-05-05
  • bootstrap modal弹出框的垂直居中

    bootstrap modal弹出框的垂直居中

    这篇文章主要为大家详细介绍了bootstrap modal弹出框的垂直居中,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-12-12
  • 使用正则替换变量

    使用正则替换变量

    使用正则替换变量...
    2007-05-05
  • javascript下string.format函数补充

    javascript下string.format函数补充

    在上一篇中,自谦懒人的咚锵留言指出楼猪改写的format函数在参数输入11个后不起作用了
    2010-08-08
  • javascript解锁前端密码框常见功能做法

    javascript解锁前端密码框常见功能做法

    这篇文章主要为大家介绍了javascript解锁前端密码框常见功能做法示例演示,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步早日升职加薪
    2022-03-03
  • js实现上传图片及时预览

    js实现上传图片及时预览

    这篇文章主要为大家详细介绍了js实现上传图片及时预览的相关资料,具有一定的参考价值,感兴趣的朋友可以参考一下
    2016-05-05

最新评论