質問です.


条件文


7号:FizzBuzz


条件は3と5で区切られることが少ないため、まずこの条件を作成する必要があります.
3を3で割った数を先にフィルタリングすると、3と5をすべてで割った条件に遭遇しません.
逆に3か5に分けない場合が多いので、底から外します.

9日:月に対応する日付を返します


最小の数字をifとelse ifでフィルタし、コードを簡略化するために最も多い数字をelseでフィルタします.

13:スコアに対応するレベルと記号を返します(+/-)


等級分類と記号分類の2つの機能を1つの関数に含めないでください.
オブジェクト向けの5つの原理SOLIDの1つであるSRP(単一責任原則)に基づいて、作成されたクラスは1つの機能しか持たず、クラスが提供するすべてのサービスは1つの職責に集中しなければならない.
最初に作成したコードでは,階層分類とシンボル付与の2つのタスクが実行されたが,これを階層分類関数とシンボル付与関数に分け,実際の操作ではメンテナンスが容易である.

14:任意の3つのエッジの長さが直角三角形であるかどうかを返します。


3つの方法を用いた条件により,エッジ1,エッジ2,エッジ3をそれぞれ最長エッジと仮定した場合.
すなわち,if文を3つ作成し,その中で3つのフラットメソッドを繰り返し記述した.しかし、これは無意味なコードの羅列だけでなく、コードの可読性を低下させる.問題の意図に応じて、3つの方法を使用することができます.

16:1秒後の時間、分、秒の値を返します


次のように、時間分秒変化をネスト条件文に設定する必要はありません.
if(second === 59){
  if(minute === 59){
   ...
最小単位から各パラメータに独立したif文を作成し、存在するかどうかを確認します.
また、割り当てが必要な部分ではマッチング演算子を使用しており、実装する操作の意図を常に考慮し、コードを記述します.

17日:falsey値をtrueに戻す


NaNを入力するとtrueを返す必要がありますが、この部分では通過条件が満たされていません.NaNはすべての値と一致しなかった.だからNan=NaNの結果はfalseです.
したがって,条件を満たさなければ値を返すことができないif文字自体もtrueも返さない.
組み込み関数booleanを使用して、任意の値をtrue/falseに変換し、それを否定して必要な値を検索できます.