Назад к задачам
IT OneПолучайте помощь с лайвкодингом в реальном времени с Sobes Copilot
Junior — Middle+
14
Группировка массива пользователей по выбранному полю с формированием вложенной карты ID
Компании, где спрашивали:
Условие задачи
Необходимо сгруппировать массив объектов‑пользователей по одному из его полей (кроме id). Для каждой полученной группы следует создать объект (или Map), где:
- ключами выступают значения
idпользователей; - значениями – объекты пользователей без свойства
id.
const users = [
{ id: 1, age: 20, name: "Иван", country: "Russia", registered: true },
{ id: 2, age: 30, name: "Дима", country: "USA", registered: true },
{ id: 3, age: 25, name: "Леха", country: "Russia", registered: false },
{ id: 4, age: 20, name: "Леха", country: "USA", registered: false },
{ id: 5, age: 30, name: "Иван", country: "Russia", registered: true },
{ id: 6, age: 50, name: "Леха", country: "Russia", registered: true },
{ id: 7, age: 20, name: "Дима", country: "USA", registered: false }
];
console.log(groupUsers(users, "country"));
/*
{
"Russia": {
"1": { age: 20, name: "Иван", registered: true },
// ... остальные пользователи из России
},
"USA": {
"2": { age: 30, name: "Дима", registered: true },
// ... остальные пользователи из США
}
}
*/
Функция groupUsers должна принимать массив и название поля, по которому происходит группировка, и возвращать структуру, описанную выше.