以下のコードで、オブジェクトの配列で、複数指定したキーを持つオブジェクトのみにマップ関数でリスト処理をしたいのですが場合分けがべた書きスマートじゃないです。(オブジェクトのキーが増えた場合などにリファクタしづらい。)keyを一気に扱う方法はありませんか?
他言語の
int x = 5
int y = 2
x in (1, 2, 3) → false
y in (1, 2, 3) → true
みたいな感じです
typescript
1type Obj = { 2 key: string, 3 name: string 4} 5const objs: Obj[] = [ 6 {key: "human", name: "私"}, 7 {key: "fish", name: "鮭"}, 8 {key: "mouse", name: "ハムスター"}, 9 {key: "flog", name: "アマガエル"} 10] 11const keys = objs.map(o => o.key) 12console.log( 13 keys.map( 14 key => { 15 if(key === "human" || key === "mouse") 16 return "哺乳類" 17 else if(key === "fish") 18 return "魚類" 19 else(key === "flog") 20 return "両生類" 21 } 22 ) 23 ) 24// 期待値 25["哺乳類", "魚類", "哺乳類", "両生類"] 26
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/10/07 20:03 編集
2020/10/07 20:27
2020/10/07 20:49
2020/10/08 03:07 編集