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

将对象数组映射到新组中

如何解决将对象数组映射到新组中

我有一个对象,其中包含从 API 返回的两个对象数组。我需要尝试将其映射到一个新的对象数组中,以便我可以对 Vue v-select 组件的数据进行分组。 CodePen Example

fields: {
      current: [
        {
          name: 'Date'
        },{
          name: 'Time'
        }
      ],prevIoUs: [
        {
          name: 'Birthday'
        },{
          name: 'Comments'
        }
      ]
    },

如何将其映射到看起来像这样的新对象数组中?

grouped: [
      {
        group: "Current",},{
        name: "Date"
      },{
        name: "Time"
      },{
        group: "PrevIoUs"
      },{
        name: "Birthday"
      },{
        name: "Comments"
      },]

解决方法

使用 Object.entries() 获取组及其值,并使用 Array.flatMap() 映射它们。创建组的对象,并将其添加到包含组项的数组中。

const flattenGroups = fields =>
  Object.entries(fields)
    .flatMap(([group,items]) => [{ group },...items])

const fields = {"current":[{"name":"Date"},{"name":"Time"}],"previous":[{"name":"Birthday"},{"name":"Comments"}]}

const result = flattenGroups(fields)

console.log(result)

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