当前位置: 首页 > 图文教程 > 网络编程 > Javascript > javascript获取不重复的随机数的方法比较

Javascript
图片展示效果 鼠标经过变大图,支持FF
可拖动可改变大小div的实现代码
javascript 随机广告代码(图片广告)
JS+Ajax+Jquery实现页面无刷新分页以及分组 超强的实现
JQuery 浮动导航栏实现代码
jQuery一步一步实现跨浏览器的可编辑表格,支持IE、Firefox、Safari、Chrome、Opera
js 分栏效果实现代码
基于jQuery的ajax功能实现web service的json转化
IE 条件注释详解总结(附实例代码)
用cssText批量修改样式
JavaScript 应用技巧集合[推荐]
jquery 导航设计实现代码 学习jquery的朋友可以看下
动态样式类封装JS代码
一步一步教你写一个jQuery的插件教程(Plugin)
使用jQuery的ajax功能实现的RSS Reader 代码
jquery tools 系列 scrollable(2)
jquery tools系列 overlay 学习
jquery tools系列 expose 学习
javascript十个最常用的自定义函数(中文版)
javascript 流畅动画实现原理

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


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-09-12   浏览: 399 ::
收藏到网摘: n/a

js永不重复随机数实现代码比较

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

点击运行可以看到效果:
[Ctrl+A 全选 提示:你可先修改部分代码,再按运行]

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

不重复的随机数方案3:234毫秒
换一个思路,如果把原始数组origin打散,然后再依次打印,
这样也可以做到随机永不重复,而且效率更高,
因为方案2运行到越后面,原始数组为null的频率就越高,运算的次数就越多。
点击运行可以看到效果:
[Ctrl+A 全选 提示:你可先修改部分代码,再按运行]