indexBy
Creates an object from an array, using a function to map each value to a key.
- Use
Array.prototype.reduce()
to create an object fromarr
. - Apply
fn
to each value ofarr
to produce a key and add the key-value pair to the object.
const indexBy = (arr, fn) => arr.reduce((obj, v, i) => { obj[fn(v, i, arr)] = v; return obj; }, {});Examples;indexBy( [ { id: 10, name: "apple" }, { id: 20, name: "orange" }, ], (x) => x.id);// { '10': { id: 10, name: 'apple' }, '20': { id: 20, name: 'orange' } }
Sign for comment
You can write your questions about the subject below.
LoginYour information is only used to display your name and reply by email.