生成[1,2,,3,4,5,6,7,8,9]的隨機數組?


      今天突然看到了一道有關js的題,想了一下,沒有想出怎么做,我是一個小白,在學習的道路上,此時心想認真琢磨一下吧,下面是自己琢磨的過程。

      第一步:當然是聲明一個存放隨機數的數組啦,其次數組里面有1-9,需要9個值,很明顯需要循環,在想在什么條件下循環呢,因為數組是從0計數的,所以循環條件

i的值取0-8,即i<9或i<=8.

我在最后打印了一下結果,運行結果:[3,9,4,4,8,3,0,2,9]是生成了9個數,但是很明顯有三個錯誤:(1)  結果中含有“0”   (2)有重復的數字  (3)數字沒有排序

只要把這三個問題解決了就0k了。

       

   第二步:首先解決第一個問題

隨機數放進數組前首先判斷下是不是大於0,然而運行結果卻是怎樣:[7,9,7,9,3,3,1,6],什么?為什么只有8個數,原來是有一個值為0,被殘忍的關在數組外了,但是它還穿着帶有編號的衣服,那該怎么辦呢,導致會少好多值,讓我們遇到這種情況來個else,運行一下結果為[9,7,2,7,3,1,5,4,6],第一個問題算是解決了。

      

     第三步:就是數組去重,就是把生成的隨機數與數組之前已有的所有數字進行比較,結果都不一樣,然后再放進去,如果有一個一樣的,是不是也要把它帶有編號的衣服脫掉啊,現在新的隨機數只要不和已有的任何一個不同就可以放進去了,我們加個計數器,計數器最終的值和已有數組的length相等就可以把新的隨機數放進數組了,計數器肯定要加在生成隨機數循環的里面,因為每次生成新的隨機數計計時器都要清空。

     

     第四步,數組排序,大家都知道數組的sort()方法,但是數字排序會出現問題,比如:1,2,11,22,進行排序會出現問題,輸出:1,11,2,22,它只會根據第一位數字進行排序,所以我們要加一個排序函數,function sortnum(a,b){return a-b;},從小到大是a-b,從大到小是b-a,字母只用sort()

 

 總結:個人是小白,只能慢慢來,從簡單的做起,一點一點的掌握。如有大神偶然路過,勿噴。

 

 

 

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM