У меня есть следующие данные:
const match = 'A'
const data = [
{
age: "12",
group: [
{club: 'A'},
{club: 'B'}
],
active: {
sjbuas777: {club: 'A'},
122kk7dgs: {club: 'B'}
}
},
{
age: "11",
group: [
{club: 'A'},
{club: 'D'}
],
active: {
djs7skww3: {club: 'C'},
sjhsjs72k: {club: 'B'}
}
},
{
age: "12",
group: [
{club: 'A'},
{club: 'D'}
],
active: {
shshs6kka: {club: 'A'},
5d8jallo1: {club: 'C'}
}
},
{
age: "13",
group: [
{club: 'C'},
{club: 'S'}
],
active: {
kks7sjkla: {club: 'A'},
jjs66s5as: {club: 'B'}
}
}
]
Как я могу сгруппировать данные по возрасту и дать счетчик groups
и active
, где значение club
равно match
для этого возраста?Обратите внимание, что ключи в активном объекте неизвестны.
Требуемый вывод:
[
{age: "11", group: 1, active: 0},
{age: "12", group: 2, active: 2},
{age: "13", group: 0, active: 1}
]
Заранее большое спасибо.
РЕДАКТИРОВАТЬ
Я хотелчтобы показать, где я сейчас нахожусь:
function getCountsByAge() {
return [
...new Set([
...Object.values(data)
.filter(d => d.group
.some(({club}) => club === match))
.map(result => result)
])
]
}