【问题标题】:flatten array and put child array into an array of object展平数组并将子数组放入对象数组中
【发布时间】:2022-07-20 16:44:07
【问题描述】:

一个问题纠结了一个多小时,这个嵌套数组怎么转

[
    [
        {
            "name": "1",
        }
    ],
    [
        {
            "name": "a",
        },
        {
            "name": "b",
        }
    ]
]

进入这个:

[
    {
      name: '1',
    },
    {
      id: 'a-b',
      grouped: [
        {
          name: 'a',
          
        },
        {
          name: 'b',
        },
      ],
    },
  ]

我不介意使用 lodash。不确定我是否应该先将其展平,然后再进行其他任何事情都会使事情变得更容易。

【问题讨论】:

  • 如果你在外部数组中有两个以上的项目怎么办?你试过什么?

标签: javascript ecmascript-6


【解决方案1】:

您可以使用map() 来形成 id 并获取形成新数组所需的部分。

const data = [
  [{
    "name": "1",
  }],
  [{
      "name": "a",
    },
    {
      "name": "b",
    }
  ]
];

const result = [
 ...data[0],
 {
   id: data[1].map(r => r.name).join("-"), 
   grouped: data[1]
 }
];

console.log(result);

【讨论】:

    猜你喜欢
    • 2022-12-06
    • 2021-12-25
    • 2017-07-05
    • 1970-01-01
    • 2022-01-25
    • 2021-12-29
    • 2017-04-06
    相关资源
    最近更新 更多