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中网页各种高宽与位置的方法总结

    本文详细罗列了如何在javascript获取网页各种高宽及位置,内容比较全面,有需要的可以参考一下。
    2016-07-07
  • 浅谈bootstrap使用中的一些问题以及解决过程

    浅谈bootstrap使用中的一些问题以及解决过程

    下面小编就为大家带来一篇浅谈bootstrap使用中的一些问题以及解决过程。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-10-10
  • 快速解决bootstrap下拉菜单无法隐藏的问题

    快速解决bootstrap下拉菜单无法隐藏的问题

    今天小编就为大家分享一篇快速解决bootstrap下拉菜单无法隐藏的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-08-08
  • 手把手教你实现一个JavaScript时间轴组件

    手把手教你实现一个JavaScript时间轴组件

    本文主要是给大家带来一个时间轴的组件开发教程,其主要功能就是可以拖动时间轴来定位当前时间,可以通过鼠标滚轮来修改当前时间分辨率,需要的可以参考一下
    2022-10-10
  • javascript模拟实现计算器

    javascript模拟实现计算器

    这篇文章主要为大家详细介绍了javascript模拟实现计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-04-04
  • 微信小程序时间戳转日期的详解

    微信小程序时间戳转日期的详解

    这篇文章主要介绍了微信小程序时间戳转日期,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • webpack external模块的具体使用

    webpack external模块的具体使用

    本篇文章主要介绍了webpack external模块的具体使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • js简单实现点击左右运动的方法

    js简单实现点击左右运动的方法

    这篇文章主要介绍了js简单实现点击左右运动的方法,实例分析了javascript实现左右运动的相关要点与技巧,非常具有实用价值,需要的朋友可以参考下
    2015-04-04
  • 关于img的href和src取变量及赋值的方法

    关于img的href和src取变量及赋值的方法

    这篇文章主要介绍了img的href和src取变量及赋值的方法,需要的朋友可以参考下
    2014-04-04
  • JS实现的自定义右键菜单实例二则

    JS实现的自定义右键菜单实例二则

    这篇文章主要介绍了JS实现的自定义右键菜单,以两则实例形式分析了javascript自定义右键菜单效果的实现技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-09-09

最新评论