Посчитать данные с объекта
Допустим у нас есть массив юзеров виде объектов у которых есть свойство город. Нам нужно написать функцию которая вернет объект где будет написан ключ конкретный город и значение сколько юзеров имеет в виде свойства данный город.
// examples
const users = [
{
id: 888,
name: 'Denis',
age: 44,
city: 'Kyiv',
},
{
id: 333,
name: 'Alex',
age: 33,
city: 'Lviv',
},
{
id: 392,
name: 'Nastya',
age: 22,
city: 'Kyiv',
},
{
id: 123,
name: 'Violetta',
age: 15,
city: 'Odesa',
},
{
id: 640,
name: 'Mykola',
age: 31,
city: 'Lviv',
},
];
сountByCity(users); // ===> { 'Kyiv': 2, 'Lviv': 2, 'Odesa': 1 }
Ответы (1 шт):
Автор решения: Oliver Patterson
→ Ссылка
В следующий раз, хотя бы попытайтесь сделать что-то сами. Прочитайте про метод reduce.
// examples
const users = [
{
id: 888,
name: 'Denis',
age: 44,
city: 'Kyiv',
},
{
id: 333,
name: 'Alex',
age: 33,
city: 'Lviv',
},
{
id: 392,
name: 'Nastya',
age: 22,
city: 'Kyiv',
},
{
id: 123,
name: 'Violetta',
age: 15,
city: 'Odesa',
},
{
id: 640,
name: 'Mykola',
age: 31,
city: 'Lviv',
},
];
console.log(сountByCity(users)); // ===> { 'Kyiv': 2, 'Lviv': 2, 'Odesa': 1 }
function сountByCity(data)
{
return data.reduce((obj, {city}) =>
{
if (typeof obj[city] !== "undefined")
{
obj[city] += 1;
}
else
{
obj[city] = 1;
}
return obj;
}, {});
}