繁体   English   中英

推送另一个数组中每个对象内的每个对象的元素

[英]push elements of each object inside each object inside another array

我有两个数组,一个是我原来的一个data ,它包括:

const datas = [
  {
    name: 'core Test',
    item: [
      {
        name: 'test/core/core.js',
        item: "item1"
      }
    ]
  },
  {
    name: 'users Test',
    item: [
      {
        name: 'test/users/user.js',
        item: "item2"
      }
    ]
  }
]

我有另一个名为replace数组,我试图将其中的每个元素推入原始元素中

const replace = [
  {
    type: "test1",
    number: "1",
  },
  {
    type: "test2",
    number: "2",
  }
]

这是我的代码:

const transformedData = datas.map(data => {
  data.item = data.item.map(x => ({
    name: x.name,
    type: replace.map(y=>{return y;})
  }))
  return data
})

输出我得到:

[
  {
    "name": "core Test",
    "item": [
      {
        "name": "test/core/core.js",
        "type": [
          { "type": "test1", "number": "1" },
          { "type": "test2", "number": "2" }
        ]
      }
    ]
  },
  {
    "name": "users Test",
    "item": [
      {
        "name": "test/users/user.js",
        "type": [
          { "type": "test1", "number": "1" },
          { "type": "test2", "number": "2" }
        ]
      }
    ]
  }
]

我想要的输出:

[
  {
    "name": "core Test",
    "item": [
      {
        "name": "test/core/core.js",
        "type": { "type": "test1", "number": "1" }
      }
    ]
  },
  {
    "name": "users Test",
    "item": [
      {
        "name": "test/users/user.js",
        "type": { "type": "test2", "number": "2" }
      }
    ]
  }
]

这是因为每次进入数据内部的值时,每次都会一直映射到替换数组。 相反,您希望使用原始地图跟踪索引,以便每次只有一个实例。

尝试类似的东西:

const transformedData = datas.map((data, index) => {
  data.item = data.item.map(x => ({
    name: x.name,
    type: replace[index]
  }))
  return data;
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM