入力に応じて、関数は 'start'から 'end'までの 'num'要素の配列を返す必要があります。 'type'引数は、整数( '1')か浮動小数点( '0')かを決定します。 最初に 'num'長さの新しい配列が作成され、生成された整数または10進数でなければならないかどうかを判断するswitch文があります。 私はそれらを返すことに問題があるようです。乱数を生成する関数は、Mozillaの開発者のWebサイトから取得したものです。全体の思考は、React Nativeのアクションクリエイターでフィードされますが、私はそれがここでは関係ないと思います。JavaScript-switch条件を返す配列
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;
});
}
};
EDIT: 私はそれが両方のケースを組み合わせるしようとして、それが重複しないと思います。私はまだ不必要なswitch文を取り除くためにreduce()を読んでいます。私はあなたの訂正を取ってきました。現時点では、次のようになります(浮動小数点数を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