|
不重復的隨機數方案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需刷新才能執行]
JavaScript技術:javascript獲取不重復的隨機數的方法比較,轉載需保留來源!
鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。