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

如何将嵌套对象作为数组“解包”?

如何解决如何将嵌套对象作为数组“解包”?

我有一个包含可迭代项的对象(键只是日期字符串)。其中一些对象具有多个项目。

我想展平每个对象,以便只保留一个尺寸的对象。

基本上,我希望data看起来像expected

const data = {
//this datestring only has one item
  "1598989834745": {
    "219319571 ": {
      applicantCode: "goc2gp",carrera: "Trabajo Social",code: "219319571 "
    }
  },//this one has two items
  "1598990166911": {
    "215576855": {
      applicantCode: "8e11532",carrera: "Médico Cirujano y Partero",code: "215576855"
    },"217831836": {
      applicantCode: "ybg14pd",code: "217831836"
    }
  }
};

const expected = [
  {
    applicantCode: "goc2gp",code: "219319571 "
  },{
    applicantCode: "8e11532",code: "215576855"
  },{
    applicantCode: "ybg14pd",code: "217831836"
  }
];

我尝试映射Object.keys

function objToArr(obj: object): object[] {
  return Object.keys(obj).map(key => obj[key]);
}

但是当我多次(覆盖两个维度)执行此操作时,它返回以下内容

[
        {
          '219319571 ': {
            applicantCode: 'goc2gp',carrera: 'Trabajo Social',code: '219319571 '
          }
        },{
          '215576855': {
            applicantCode: '8e11532',carrera: 'Médico Cirujano y Partero',code: '215576855'
          },'217831836': {
            applicantCode: 'ybg14pd',code: '217831836'
          }
        }
      ]
```

解决方法

您可以打几个Object.values电话到达那里。遵循以下原则:

const expected = Object.values(data).map(v => Object.values(v)).flat()

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