【问题标题】:join arrays of object and create new array [duplicate]加入对象数组并创建新数组
【发布时间】:2021-08-12 13:17:17
【问题描述】:

我有一个这样的对象数组:

 example = [
  {
    id: 1,
    child: [
      {
        id: 1,
        name: "child 1",
      },
    ],
  },
  {
    id: 2,
    child: [
      {
        id: 2,
        name: "child 2",
      },
      {
        id: 3,
        name: "child 3",
      },
    ],
  },
];

我想得到一个这样的子对象数组:

[{...},{...},{...}]

我厌倦了使用 map 循环,但我得到了一个包含两个对象的数组。

【问题讨论】:

  • 不清楚你需要什么。您是否需要带有 child 值的对象数组?

标签: javascript arrays ecmascript-6


【解决方案1】:

您可以将child 数组映射到新数组并将它们展平。

Array.prototype.flatMap

flatMap() 方法返回一个新数组,该数组通过应用给定的 回调函数到数组的每个元素,然后展平 结果提高了一级。它等同于 map() 后跟 flat() 深度为 1,但比调用这两个更有效 方法分开。

example = [
  {
    id: 1,
    child: [
      {
        id: 1,
        name: "child 1",
      },
    ],
  },
  {
    id: 2,
    child: [
      {
        id: 2,
        name: "child 2",
      },
      {
        id: 3,
        name: "child 3",
      },
    ],
  },
];

const newArray = example.flatMap(({ child }) => child);

console.log(newArray);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-26
    • 2022-07-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-27
    • 2020-01-28
    相关资源
    最近更新 更多