Например есть группа объектов с пользователями.
{id: id-1, name: 'Вася'}, {id: id-2, name: 'Петя'}, {id: id-3, name: 'Маша'}, {id: id-4, name: 'Илья'}, {id: id-5, name: 'Егор'}
Как их лучше хранить?
массивом
const myArray = [{id: id-1, name: 'Вася'}, {id: id-2, name: 'Петя'}, {id: id-3, name: 'Маша'}, {id: id-4, name: 'Илья'}, {id: id-5, name: 'Егор'}]
переписать группу объектов в один, позаимствовав их ключи<
const myOvj = {
id-1: {id: id-1, name: 'Вася'},
id-2: {id: id-2, name: 'Петя'},
id-3: {id: id-3, name: 'Маша'},
id-4: {id: id-4, name: 'Илья'},
id-5: {id: id-5, name: 'Егор'}
}
воспользоваться Map, также взяв переняв ключи
const myMap = new Map([
['id-1', {id: id-1, name: 'Вася'}],
['id-2', {id: id-2, name: 'Петя'}],
['id-3', {id: id-3, name: 'Маша'}],
['id-4', {id: id-4, name: 'Илья'}],
['id-5', {id: id-5, name: 'Егор'}]
])
Если я правильно понимаю, объект лучше массива потому что взять значение по ключу из объекта намного быстрее чем перебирая в цикле. у Map есть приятный метод forEach для перебора в цикле. Но я не знаю как хорошо браузеры оптимизируют Map? Быстрее ли поиск в Map чем поиск в обычном массиве?
Вообще насколько целесообразно заменить массив на объект?