根據輸入,函數應該返回從'開始'到'結束'的'num'元素數組。 'type'參數決定它們是整數('1')還是浮點('0')。 首先創建一個'num'長度的新數組,然後有一個switch語句來確定它是否應該是整數或生成的十進制數。 我似乎遇到了返回它們的問題。生成隨機數的函數,我從Mozilla的開發者網站獲取。整個想法將會反饋在React Native的行動創造者身上,但我認爲這不是相關的。JavaScript - 開關條件返回數組
export const genNum = (start, end, num, type) => {
let numberArray = new Array(num);
switch (type) {
case 1:
return numberArray.map(function(num) {
let min = Math.ceil(start);
let max = Math.floor(end);
return Math.floor(Math.random() * (max - min)) + min;
});
default:
return numberArray.map(function(num) {
return Math.floor(Math.random() * (max - min)) + min;
});
}
};
編輯: 我不認爲這是一個重複的,因爲它試圖兩種情況結合起來。我仍然閱讀reduce()來擺脫不必要的switch語句。我已經接受你的更正。目前看起來如下(我仍然需要將浮點數舍入爲2dp)。
export const genNum = (start, end, num, type) => {
let numberArray = new Array(num).fill(-1);
switch (type) {
case 1:
return numberArray.map(function(num) {
let min = Math.ceil(start);
let max = Math.floor(end);
return Math.floor(Math.random() * (max - min)) + min;
});
default:
return numberArray.map(function(num) {
let min = start;
let max = end;
return (Math.random() * (max - min)) + min;
});
}
};
你是什麼意思,有問題返回它們?當我讀取你的代碼時,它好像返回數組就好了,但它是一個沒有條目的數組,所以'map'不會執行任何操作(map對每個條目運行一次回調,但是當你的數組沒有這意味着回調永遠不會運行)。最終的結果是返回長度等於'num'且沒有條目的數組。 – Paulpro
這看起來像是一個非常複雜的'reduce()'。爲什麼你需要一個'switch'和'map()'的重複? – charlietfl
[在特定範圍內的JavaScript中生成隨機整數?]的可能重複(https://stackoverflow.com/questions/1527803/generating-random-whole-numbers-in-javascript-in-a-specific-range) – num8er