Я создаю приложение React и у меня следующий список:
const list = [
{
id: '1',
group: 'sports 1',
sports: [{
'basketball': [
{competed: true},
{won: false}
],
'soccer': [
{competed: false},
{won: false}
],
'hockey': [
{competed: false},
{won: false}
]
}],
competedInAll: false
},
{
id: '2',
group: 'sports 2',
sports: [{
'tennis': [
{competed: false},
{won: false}
],
'swimming': [
{competed: false},
{won: false}
],
'baseball': [
{competed: false},
{won: false}
]
}],
competedInAll: false
},
{
id: '3',
group: 'sports 3',
sports: [{
'volleyball': [
{competed: true},
{won: false}
],
'karate': [
{competed: true},
{won: false}
],
'surfing': [
{competed: true},
{won: false}
]
}],
competedInAll: false
}
];
Я перебираю список следующим образом:
<ul>
{list.map(item => (
<li key={item.id}>
{item.group}
<ul>
{Object.keys(item.sports[0]).map((sport, i) => <li key={i}>{sport}</li>)}
</ul>
</li>
))}
</ul>
, который выдаст следующий вывод:
Я хочу достичь:
- спорт 1 (2 осталось)
- спорт 2 (3 осталось)
- спорт 3 (соревноваться во всех видах спорта)
- Как я могу получить общее число
competed
, равное false
(сгруппированное) в каждом из sports
? - Как я могу установить для этого счетчика «соревнования во всех видах спорта» (сгруппированные), когда все они установлены на
true
?