2:00am, Writing code

Roughly coding. Posted from Berlin.

FizzBuzz in Javascript

みんな大好きFizzBuzzJavascriptで書いてみる。とはいえJavascript固有の処理は関数のデフォルト引数ぐらいしかないので他の言語でも99%応用できる。

function fizzBuzz(begin = 1, end = 100) {
  for (let i = begin; i <= end; i++) {
    const isFizz = i % 3 === 0, isBuzz = i % 5 === 0;
    console.log(isFizz && isBuzz ? 'FizzBuzz!' : isFizz ? 'Fizz' : isBuzz ? 'Buzz' : i);
  }
}
fizzBuzz();

最も素朴な実装はif文で分岐するパターン1だが、自分は上記のように説明変数を定義する方が好みだ。出力は3項演算子をチェインさせている。基本的に3項演算子のチェインはバッドプラクティスとされているけど、分岐条件が単純かつ明確で頭から読み下していける場合は別に使ってもいいんじゃないかなーと個人的には思っている2


  1. if (i % 3 === 0 && i % 5 === 0) { ~ってやつ

  2. けど世間的にはどうなんだろか。やっぱイカンのかな。