こんにちは!
今回は「Javascriptで、reduceを使って、オブジェクトの配列をオブジェクトに変換する方法」についてお伝えしたいと思います。
僕の実務経験で、DBからオブジェクトの配列でデータを取得して、それをIDをキーにしたオブジェクトに変更したいときがありました。
今回はその経験を踏まえて記事にしました。
reduceを使って、オブジェクトの配列をオブジェクトに変換する方法
今回はオブジェクトのキーに
①配列のインデックスを指定するパターン
②任意の値を指定するパターン
の2パターンをご紹介したいと思います。
①オブジェクトキーに配列のインデックスを指定する
const arr = [
{id: 100, name: 'taro'},
{id: 200, name: 'yuko'},
];
const newObj = arr.reduce((target, obj, index) => {
target[index] = obj; // 配列の要素を一つずつ取り出して、オブジェクトに追加していくイメージ
return target;
}, {});
console.log(newObj); // {'0': { id: 100, name: 'taro' }, '1': { id: 200, name: 'yuko' }}
②オブジェクトキーに任意の値を指定する
const arr = [
{id: 100, name: 'taro'},
{id: 200, name: 'yuko'},
];
const newObj = arr.reduce((target, obj, index) => {
index = obj.id; // オブジェクトのキーを指定
target[index] = obj;
return target;
}, {});
console.log(newObj); // {'100': { id: 100, name: 'taro' }, '200': { id: 200, name: 'yuko' }}
ご参考になれば幸いです。
以上、お疲れさまでした〜🍵