プログラミング バックエンド

【Javascript】reduceを使って、オブジェクトの配列をオブジェクトに変換する方法

スポンサーリンク

こんにちは!

今回は「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' }}

 

ご参考になれば幸いです。

以上、お疲れさまでした〜🍵

スポンサーリンク

-プログラミング, バックエンド
-

© 2022 エンジニア×ライフハック Powered by AFFINGER5