2017-07-28 39 views
0
<div id='passarr'>1572 4528 3564 8921 4521</div> 

我需要創建隨機整數(4位),唯一的獨特的隨機整數。創建關於上述內容的給定陣列

JS

var content = $('#passarr').text(); 
var passarr = content.split(' '); 
var pass = Math.floor(Math.random() * 9000) + 1000; 
var i = 0; 
while (i == 0) { 
    if (jQuery.inArray(pass, passarr) > -1) { 
     var pass = Math.floor(Math.random() * 9000) + 1000; 
     i = 1; 
    } 
} 

似乎一切正常,但不知道這是正確的和最短的途徑。
有什麼建議嗎?

+0

是'#passarr'結果呢? – zer00ne

+2

它看起來像你的'if'語句中的布爾表達式實際上應該是'while'語句中的布爾表達式。你不需要'我'。 – 4castle

+0

@ zer00ne,no,result is'pass' – bonaca

回答

3

您的代碼是要走的路。但是,您可以消除一些較小的錯誤(一個不必要的我和非工作代碼< 0.00001%):

var content = $('#passarr').text(); 
var passarr = content.split(' '); 
do { 
    var pass = Math.floor(Math.random() * 9000) + 1000; 
} while (jQuery.inArray(pass, passarr) > -1); 

console.log(pass); 
+0

這正是他們需要的算法。我唯一的建議是將'var pass'的聲明移到循環之外,這樣一個不知道提升的人不會被'pass'的範圍所困惑。 – 4castle

+0

@ 4castle這實際上是不改變它的一個點。他們想知道這是否行得通,而且之後會更聰明;) –

+0

非常好,後來我看到我的代碼實際上不起作用。這工作。非常感謝。 – bonaca