JavaScriptの配列をオブジェクトに変換する方法をよく忘れるのでメモで残しておく
Contents
やりたいこと
配列からオブジェクトに変換する
以下のようにIDの入ったオブジェクトの配列をAPIで受け取った時にIDをkeyとしたオブジェクトに変換したい
[
{ id: 0, value: "tomato" },
{ id: 1, value: "orange" },
{ id: 2, value: "apple" },
...
]
//IDをキーにしたオブジェクトに変換したい
{
0: { id: 0, value: "tomato" },
1: { id: 1, value: "orange" },
2: { id: 2, value: "apple" },
...
}
Object.fromEntries()を使う
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Object/fromEntries
Object.fromEntries(data.map(obj => [obj.id, obj]))
Array.prototype.reduce() でオブジェクトを使いまわす
https://developer.mozilla.org/ja/docs/Web/JavaScript/Reference/Global_Objects/Array/reduce
data.reduce((acc, obj) => {
acc[obj.id] = obj;
return acc;
}, {});
Array.prototype.reduce()でスプレッド構文を使う
data.reduce((acc, obj) => ({
...acc,
[obj.id]: obj
}), {});