コンテキストの場合、私はnpmパッケージunique-random
を見ています。これは、コードのわずか8ラインなので、それで全部だ:この `return`ステートメントを説明しますか?
'use strict';
module.exports = function (min, max) {
var prev;
return function rand() {
var num = Math.floor(Math.random() * (max - min + 1) + min);
return prev = num === prev && min !== max ? rand() : num;
};
};
は、私はちょうど最後のreturn文が何をしているのか、非常にわからないんだけど、何が起こっているのほとんどを理解しています。
誰かがそれをできるだけ明示的に説明することができますか(私はJavaScriptと一般的なコーディングにはまったく新しいです)。
おそらく、return
の文では、と表示されていることに関する一般的な質問かもしれません。? そうですか?
したがって、条件付き演算子があります。 ?
の左側にあるものが真である場合、:
の左側にあるもの、それ以外のものは:
の右側にあります。したがって、num === prev
とmin !== max
の場合はrand()
をprev
に、それ以外の場合はnum
をprev
に割り当てますか?
そうですか?
この乱数は乱数が生成された前回と同じであるかどうかを確認するために乱数が、小切手を作成します。実際に前回と同じ番号であれば 'rand()'をもう一度呼び出し、そうでなければ 'num'を返します。 – h2ooooooo
あなたは正解で何が@ h2ooooooo ^と言った。 – BenG
誰かが 'prev = num === num'条件がどのように働くべきかを記述できますか?私はそれが「真実」以外の何かに評価される方法は見当たりません – Aaron