【要件】
受け取った 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"
短っ。
書くの楽っ。読むの楽っ。
目からうろこっ。
ていうかコロンブスの卵っ。
いいですねこれ。
早くこれを使うシーンが来ないかうずうずしてます。