分岐が多くても見た目がカオスにならない三項演算子の代替的な何か。
ふと思いついたのでメモっておきます、結構便利。
ズバリ
JavaScript
const str = "aaa";
const num = 0;
const arg = "0123";
// 戻り値がある場合
const result = {
"aaa": v => `${v}hoge`,
"bbb": v => `${v}huga`
}[str](arg);
// 戻り値がない場合
({
"aaa": v => console.log(`${v}hoge`),
"bbb": v => console.log(`${v}huga`)
})[str](arg);
// プロパティ名ではなくメソッド名としてもOK
const result = {
"aaa"(v){
return `${v}hoge`;
},
"bbb"(v){
return `${v}huga`;
},
}[str](arg);
// オブジェクトの中身がリテラルや変数でもOK
const result = {
"aaa": "hoge",
"bbb": "huga"
}[str];
// 配列にも応用可能
const result = [
v => `${v}00`,
v => `${v}01`
][num](arg);