Tengo la siguiente matriz de objetos de la solicitud de obtención.
""
const submitHandler = async(e) =>{ e.preventDefault() const groupForm = { leagueID, rank: parseInt(rank) } try { console.log(groupForm) const group = await axios.get(`/getGroup/${leagueID}/${parseInt(rank)}`) console.log(group) const group2 = group.data.map((obj,index)=>{ const {team, ...rest} = obj; return({...rest, name: team.name}) }) console.log(group2) setGroupTable(group2) } catch (error) { console.log(error) } }""
Cada objeto tiene un objeto de equipo anidado, del cual quiero tomar el valor de team.name y agregarlo al objeto principal. ¿Alguien podría ayudarme y aconsejarme sobre cómo puedo lograr esto?
La razón, para hacer esto, es que quiero una matriz de objetos que se recuperarán en una tabla de datos. Según tengo entendido, la tabla de datos acepta una matriz de objetos para cada fila. Por lo tanto, quiero llevar el valor de team.name al objeto principal.
++ Actualizar la matriz actual frente a la deseada del código de muestra del objeto
""
const group = [ { '_id': "61f9b4b59f6601076fff7682", 'league': "61f1db496de13b0505f08c83", 'rank': 1, 'team': {_id: '61f86e813bce5a7bfce4eb6a', name: 'ZizoTeam'}, 'createdAt': "2022-02-01T22:31:17.808Z", 'updatedAt': "2022-02-01T22:31:17.808Z", '__v': 0 } ] const group2 = [ { '_id': "61f9b4b59f6601076fff7682", 'league': "61f1db496de13b0505f08c83", 'rank': 1, "name": 'ZizoTeam', 'createdAt': "2022-02-01T22:31:17.808Z", 'updatedAt': "2022-02-01T22:31:17.808Z", '__v': 0 } ]""
Consulta del servidor
""
const teamsInGroup = await Group.find({league:req.params.leagueID, rank: req.params.rank}).populate('team', 'name') console.log(teamsInGroup) res.status(200).json(teamsInGroup)""
const group2 = group.map(obj => { return { ...obj, team: obj.team.name, }; } ); console.log(group2);y para alinearlo con su salida si no necesita un objeto de equipo y en su lugar solo quiere un nombre
const group2 = group.map(obj => { const { team, ...rest } = obj; return { ...rest, name: team.name }; }); console.log(group2);