javascript獲取不重復(fù)的隨機(jī)數(shù)的方法比較
更新時(shí)間:2008年09月08日 20:07:25 作者:
js永不重復(fù)隨機(jī)數(shù)實(shí)現(xiàn)代碼比較
不重復(fù)的隨機(jī)數(shù)方案1:1531 毫秒
一般的思路是先創(chuàng)建一個(gè)1-3000的數(shù)組,每一次取出一個(gè),然后讓這個(gè)數(shù)組減少一個(gè), 取一個(gè),減少一個(gè),這樣就可以做到永不重復(fù)了。
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
不重復(fù)的隨機(jī)數(shù)方案2:297毫秒
但是方案1采用了slice方法,此方法重新生成數(shù)組,會(huì)大量占用內(nèi)存和cpu運(yùn)算, 效率很低,所以改良一下,從原始數(shù)組取出一個(gè)數(shù), 然后讓原始數(shù)組的這個(gè)位置賦值為null 。這樣下一次取數(shù)的時(shí)候判斷如果為null就不取,直到不為null為止。 經(jīng)過測(cè)試,可以顯著提高效率。
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
不重復(fù)的隨機(jī)數(shù)方案3:234毫秒
換一個(gè)思路,如果把原始數(shù)組origin打散,然后再依次打印,
這樣也可以做到隨機(jī)永不重復(fù),而且效率更高,
因?yàn)榉桨?運(yùn)行到越后面,原始數(shù)組為null的頻率就越高,運(yùn)算的次數(shù)就越多。
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁面才能執(zhí)行]
您可能感興趣的文章:
- 使用js Math.random()函數(shù)生成n到m間的隨機(jī)數(shù)字
- Javascript 生成指定范圍數(shù)值隨機(jī)數(shù)
- JS生成某個(gè)范圍的隨機(jī)數(shù)【四種情況詳解】
- js生成隨機(jī)數(shù)之random函數(shù)隨機(jī)示例
- JavaScript 產(chǎn)生不重復(fù)的隨機(jī)數(shù)三種實(shí)現(xiàn)思路
- js獲取數(shù)組任意個(gè)不重復(fù)的隨機(jī)數(shù)組元素
- js實(shí)現(xiàn)簡(jiǎn)單排列組合的方法
- JS實(shí)現(xiàn)的全排列組合算法示例
- JS實(shí)現(xiàn)的排列組合算法示例
- JS實(shí)現(xiàn)二維數(shù)組元素的排列組合運(yùn)算簡(jiǎn)單示例
- JavaScript隨機(jī)數(shù)的組合問題案例分析
相關(guān)文章
基于JS實(shí)現(xiàn)一個(gè)隨機(jī)生成驗(yàn)證碼功能
這篇文章主要介紹了基于JS實(shí)現(xiàn)一個(gè)隨機(jī)生成驗(yàn)證碼功能,隨機(jī)生成一個(gè)四位數(shù)的驗(yàn)證碼,本文通過實(shí)例代碼給大家介紹的非常詳細(xì)具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2019-05-05JavaScript校驗(yàn)Number(4,1)格式的數(shù)字實(shí)例代碼
這篇文章主要介紹了JavaScript校驗(yàn)Number(4,1)格式的數(shù)字實(shí)例代碼,本文實(shí)現(xiàn)思路明確代碼簡(jiǎn)單易懂,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2017-03-03javascript下string.format函數(shù)補(bǔ)充
在上一篇中,自謙懶人的咚鏘留言指出樓豬改寫的format函數(shù)在參數(shù)輸入11個(gè)后不起作用了2010-08-08js實(shí)現(xiàn)上傳圖片及時(shí)預(yù)覽
這篇文章主要為大家詳細(xì)介紹了js實(shí)現(xiàn)上傳圖片及時(shí)預(yù)覽的相關(guān)資料,具有一定的參考價(jià)值,感興趣的朋友可以參考一下2016-05-05