Как узнать сколько раз определенное свойство обьекта было использовано в массиве обьектов
function usersCountByCity(users) {}
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(usersCountByCity(users))
В консоле должно быть { 'Kyiv': 2, 'Lviv': 2, 'Odesa': 1 }
Ответы (2 шт):
Автор решения: ya_ilya
→ Ссылка
function usersCountByCity(usersArray) {
let cities = {}
usersArray.forEach(it => {
cities[it["city"]] = (cities[it["city"]] ?? 0) + 1
})
return cities
}
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(usersCountByCity(users))
Вывод:
{Kyiv: 2, Lviv: 2, Odesa: 1}
Автор решения: Deonis
→ Ссылка
const usersCountByCity = a => a.reduce((a, c) => (a[c.city] = ++a[c.city] || 1, a), {});
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(usersCountByCity(users));