Tengo una matriz de objetos que contienen más objetos.
const latestMatchesArray = [ { team1: { team_id: '1234', teamName: 'abc 101', score: 1, }, team2: { team_id: '4321', teamName: 'cba 101', score: 0, }, }, { team1: { team_id: '1234', teamName: 'abc 101', score: 0, }, team2: { team_id: '4321', teamName: 'cba 101', score: 1, }, }, ]Cada objeto contiene un partido entre dos equipos, después del partido, los puntajes se actualizan. El ganador obtiene 1, el perdedor obtiene 0.
Ahora quiero filtrar la matriz y obtener solo equipos con puntaje = 1.
¿Cómo hacer esto de manera eficiente?
No estoy seguro de si esto es lo que está buscando, pero para obtener una variedad de equipos que ganaron, puede usar Array.prototype.reduce() así:
const winners = latestMatchesArray.reduce( (teams, match) => [ ...teams, ...[match.team1, match.team2].filter( team => team.score === 1 ) ], [] );