#前置き
ふと、数値の範囲で分岐させるのって面倒だったなぁと思い返したはいいけど、どう書いていたがすぐ思い出せなかったので自分用に記載。
コードはよくありそうな年代別の分岐。
#コード
const getGeneration = age => {
if (!Number.isFinite(age)) return console.error('数値以外が入力');
if (age<0) return console.error('0歳未満?');
if (age<12) return console.log('12歳未満');
if (age<20) return console.log('12歳~19歳');
if (age<30) return console.log('20歳代');
if (age<40) return console.log('30歳代');
if (age<50) return console.log('40歳代');
if (age<60) return console.log('50歳代');
if (age<70) return console.log('60歳代');
if (age<80) return console.log('70歳代');
if (age<100) return console.log('80歳以上');
if (age<120) return console.log('100歳以上');
return console.log('120歳以上');
};
getGeneration(-1); // => 0歳未満?
getGeneration('14'); // => 数値以外が入力
getGeneration(14); // => 12歳~19歳
getGeneration(200); // => 120歳以上
Number.isFinite()の行は、数値以外の入力が絶対にない状態なら削除OK。
#最後に
もっとスマートな書き方はないものか…