【javascript】ifにするぅ?switchにするぅ?そ・れ・と・も

【要件】
受け取った animal_id に応じて、以下のとおり表示したい。

animal_id 表示名
1 cat
2 dog
3 lion
4 panda
5 giraffe

はい。きっと最初に思いつくのがif文による分岐ですよね。

console.log(animal_id); // 3
var animalName = '';
if(animal_id === 1) {
  animalName = 'cat';
} else if (animal_id === 2) {
  animalName = 'dog';
} else if (animal_id === 3) {
  animalName = 'lion';
} else if (animal_id === 4) {
  animalName = 'panda';
} else if (animal_id === 5) {
  animalName = 'giraffe';
}

console.log(animalName); // "lion"

多分こんなやつ。javascript習いたての人が書きそうな。
もちろんこれでも動くんですが、もうちょっと慣れてくると switch文で処理したくなりますよね?

console.log(animal_id); // 3
var animalName = '';
switch(animal_id) {
  case 1:
    animalName = 'cat';
    break;
  case 2:
    animalName = 'dog';
    break;
  case 3:
    animalName = 'lion';
    break;
  case 4:
    animalName = 'panda';
    break;
  case 5:
    animalName = 'giraffe';
    break;
}

console.log(animalName); // "lion"

だいぶすっきりしました。
可読性もメンテのしやすさも上がりました。
処理速度もifよりちょっと速いはずです。

そして、今日紹介したいのは第三の方法!僕も最近知ったのです。

console.log(animal_id); // 3
var animalName = ({
  1: 'cat',
  2: 'dog',
  3: 'lion',
  4: 'panda',
  5: 'giraffe',
})[animal_id];

console.log(animalName); // "lion"

短っ。
書くの楽っ。読むの楽っ。
目からうろこっ。
ていうかコロンブスの卵っ。

いいですねこれ。
早くこれを使うシーンが来ないかうずうずしてます。

カテゴリー: JavaScript パーマリンク

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

*