使用javascript中的map向内部数组添加值

一杯

您好,假设我有以下数组:

let array = [
  {
    id: "1",
    name: "name",
    categories: [
      {
        subid: "10",
        name: "name",
      },
      {
        subid: "11",
        name: "name",
      }
    ]
  },
  {
    id: "2",
    name: "name",
    categories: [
      {
        subid: "20",
        name: "name",
      },
      {
        subid: "21",
        name: "name",
      }
    ]
  }
]

我的目标是获取id每个对象的并将其添加到内部数组中categories所以它看起来像这样:

let array = [
  {
    id: "1",
    name: "name",
    categories: [
      {
        subid: "10",
        name: "name",
        id: "1"
      },
      {
        subid: "11",
        name: "name",
        id: "1"
      }
    ]
  },
  {
    id: "2",
    name: "name",
    categories: [
      {
        subid: "20",
        name: "name",
        id: "2"
      },
      {
        subid: "21",
        name: "name",
        id: "2"
      }
    ]
  }
]

这是我到目前为止的内容:

array.map(x => (x.id)) // returns new array of ids
// add these into the categories

有人可以帮我解决这个问题map吗?如果map不能使用,我认为for each可以使用

妮娜·斯科茨(Nina Scholz)

您需要映射所有具有复制属性的数组,以获取具有新属性的新独立数据。

let array = [{ id: "1", name: "name", categories: [{ subid: "10", name: "name", }, { subid: "11", name: "name", }] }, { id: "2", name: "name", categories: [{ subid: "20", name: "name", }, { subid: "21", name: "name", }] }],
    updated = array.map(o => Object.assign(
        {},
        o,
        { categories: o.categories.map(p => Object.assign({}, p, { id: o.id })) }
    ));

console.log(updated);
console.log(array);
.as-console-wrapper { max-height: 100% !important; top: 0; }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章