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