微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何获取对象属性ID为“ random”的嵌套数组项并更改name属性

如何解决如何获取对象属性ID为“ random”的嵌套数组项并更改name属性

我有一个嵌套的对象数组。如何获取对象属性ID为“随机”并将名称设置为“您赢了”的嵌套数组项 结构如下:

[
{
itemsBundle [
{
id: 'selection'
name: 'Failed'
}
{
id: 'random'
name:'win'
}
]
basketId: 'item'
basketName
tags[{}{}]
}
{}
{}
]

我需要以某种方式将对象放入主数组中,其中嵌套的itemsBundle对象数组包含ID为'random'的对象,然后对该id为'random'的itemBundle的单个对象设置名称,从赢到赢。我考虑过将嵌套的map()与filter()或嵌套的循环一起使用,但不确定哪个选项是最好的,以及如何以更简单的方式实现此结果。我使用的唯一的第三方库是lodash。

解决方法

flatMap和find的工作示例。但它是主要内容的变异,您必须先克隆列表最深。 下次改善您的问题:)

const aa = [
  {
    itemsBundle: [
      {
        id: "selection",name: "failed"
      },{
        id: "random",name: "win"
      }
    ],basketId: "item",basketName: "",tags: [{},{}]
  },{},{}
];

const items = aa.flatMap(a => a.itemsBundle || [])
const itemFound = items.find(item => item.id === 'random')
itemFound.name = 'you win'

console.log(aa[0].itemsBundle[1])

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。