【问题标题】:Proccessing nested object in an array of objects?处理对象数组中的嵌套对象?
【发布时间】:2022-02-02 21:35:39
【问题描述】:

我有以下来自 get 请求的对象数组。

""

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)
    }
}

""

每个对象都有一个嵌套的团队对象,我想从中获取 team.name 的值并添加到父对象。有人可以帮助我并建议我如何实现这一目标吗?

这样做的原因是我想要将在数据表中检索的对象数组。据我了解,数据表接受每一行的对象数组。因此,我想将 team.name 值传递给父对象。

++更新当前与期望的对象数组的示例代码

""

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
  }
]

""

服务器查询

""

    const teamsInGroup = await Group.find({league:req.params.leagueID, rank: req.params.rank}).populate('team', 'name')
    console.log(teamsInGroup)
    res.status(200).json(teamsInGroup)

""

【问题讨论】:

  • 您能否将您的示例文档粘贴为文本并告诉我们您的预期结果是什么?您可以尽可能简化它(只需离开一个团队等)
  • 更新了帖子,如果有帮助请告诉我。

标签: javascript arrays mongodb object mongoose


【解决方案1】:
const group2 = group.map(obj => {
  return {
    ...obj,
    team: obj.team.name,
  };
}
);
console.log(group2);

如果您不需要团队对象而只需要名称,则与您的输出保持一致

const group2 = group.map(obj => {
  const { team, ...rest } = obj;
  return { ...rest, name: team.name };
});
console.log(group2);

【讨论】:

  • 我已经尝试过这个解决方案,但是我将每个对象嵌套到另一个数组中,并且团队名称出现为未定义。
  • 您能否粘贴您的示例文件或详细说明或以上内容?使用第二段代码和您的输入,我可以获得您想要的输出。您还可以展示您要进一步详细说明您的评论的输出吗?
  • 在帖子中编辑了我的代码,如果您需要更多信息,请告诉我
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-07
  • 1970-01-01
  • 2014-09-13
  • 1970-01-01
  • 2014-12-16
  • 2021-03-22
  • 1970-01-01
相关资源
最近更新 更多