0
我有以下效用函數:JS函數來產生唯一的隨機數
var Utilities = (function (array, maxN) {
function generateRandomNumber(array, maxN) {
let randomN = Math.floor(Math.random() * (maxN - 0) + 0);
if(array.length == maxN) {
array = [];
}
if(!array.includes(randomN)) {
array.push(randomN);
}
else {
randomN = generateRandomNumber(array, maxN);
}
return randomN;
}
return {
generateRandomNumber: generateRandomNumber
};
})();
export default Utilities;
我使用像這樣其中:
function getRandomNumber() {
var array = [];
let randomN = Utilities.generateRandomNumber(array, 5);
return randomN;
}
然後我使用該函數內的反應組分,像這樣:
...
getNewQuestion =() => {
var randomN = getRandomNumber();
console.log(randomN);
this.setState({
question: this.state.data.data.questions[randomN]
})
this.setCatBgColor(this.state.data.data.questions[randomN].category);
}
...
我剛纔做了一個試驗,我得到:
0,0,3
這是錯誤的,因爲它們應該是唯一的,直到達到5的長度(在這種情況下)。
' - 0','+ 0' ... ?! – deceze
@deceze Nah,所有的零都是正數 – Bergi
@Bergi我應該在這裏使用更多的單詞:*那些在你的代碼中執行的' - 0'和'+ 0'是什麼......?看起來很多餘。* – deceze