Skip to content
Index

[JavaScript] Convert an array of objects into a map for easy lookup

For faster access to a list of objects, you can convert the array into a map. This is useful when you need to look up items by a key, such as an ID.

Starting with a list of objects:

const items = [
{ id: 1, name: 'Alice' },
{ id: 2, name: 'Bob' },
{ id: 3, name: 'Charlie' },
];

Convert into a regular JavaScript object.

const map = items.reduce((acc, item) => {
acc[item.id] = item;
return acc;
}, {});
console.log(map[2]); // { id: 2, name: 'Bob' }
console.log(map[100]); // undefined

Convert into a Map data structure.

const map = new Map(items.map(item => [item.id, item]));
console.log(map.get(2)); // { id: 2, name: 'Bob' }
console.log(map.get(100)); // undefined

Note the difference in how you access the items in the Map instance, versus a regular object.