概要
キーとなるプロパティを持つオブジェクトの配列を連想配列に変換する場合、Array.prototype.reduce()
とObject.defineProperty()
を使って以下のように書ける。
index.js
const hash = array.reduce((p, c) => Object.defineProperty(p, c.key, { value: c }), {});
サンプルコード
配列を連想配列に変換し、キーを使って値を取り出すサンプルコード。
sample.js
const array = [
{ code: 'F001', name: 'Apple', price: 250 },
{ code: 'F002', name: 'Banana', price: 200 },
{ code: 'F003', name: 'Cherry', price: 500 },
{ code: 'F004', name: 'Durian', price: 5000 },
];
const hash = array.reduce((p, c) => Object.defineProperty(p, c.code, { value: c }), {});
console.log(hash['F003'].name); // Cherry