Преобразуйте каждую запись в пару [id, user] и соберите объект через Object.fromEntries. Значениями останутся исходные объекты пользователей.
Нормализация массива пользователей в объект с id‑ключами
Преобразуйте каждую запись в пару [id, user] и соберите объект через Object.fromEntries. Значениями останутся исходные объекты пользователей.
Короткий ответ
Что ответить на собеседовании
Подробный разбор
Ответ с пояснениями
Условие
Дан список объектов, каждый из которых описывает отдельного пользователя. Необходимо преобразовать этот список в структуру‑словарь, где каждый ключ — это уникальный идентификатор пользователя (id), а значение — исходный объект с полной информацией о пользователе.
const users = [
{ id: 1, age: 16, salary: 200, name: 'Andrey', roles: ['front'] },
{ id: 2, age: 21, salary: 250, name: 'Vasya', roles: ['back'] },
{ id: 3, age: 30, salary: 400, name: 'Sergey', roles: ['front', 'lead'] },
{ id: 4, age: 25, salary: 360, name: 'Dmitriy', roles: ['manager'] },
{ id: 5, age: 50, salary: 420, name: 'Max', roles: ['back', 'lead'] },
];
Ответ
Преобразуйте каждую запись в пару [id, user] и соберите объект через Object.fromEntries. Значениями останутся исходные объекты пользователей.
const usersById = Object.fromEntries(users.map(user => [user.id, user]));
Числовые ID станут строковыми ключами. При повторном ID последняя запись заменит предыдущую; если это недопустимо, проверяйте уникальность. Копия неглубокая: значение словаря и элемент исходного массива — один объект.