为了账号安全,请及时绑定邮箱和手机立即绑定

展平对象并将多个对象推送到数组

展平对象并将多个对象推送到数组

慕仙森 2021-11-12 16:26:07
我正在尝试将数组内的多个对象展平。它不断将其扁平化为一个数组。我希望它在数组中有多个对象,但也希望除键和值之外的所有内容都变平。这是名为“livedata”的当前数组。    [       {           "earningsFileId": {               "value": 1234           },           "paymentType": {               "value": "Session",               "errors": [                   {                       "id": 802462,                       "message": "Invalid Combination",                       "status": "Processing"                   }               ]           },           "detailStatus": {               "value": "Processing"           }       },       {           "earningsFileId": {               "value": 5678           },           "paymentType": {               "value": "Session",               "errors": [                   {                       "id": 802462,                       "message": "Invalid Combination",                       "status": "Processing"                   }               ]           },           "detailStatus": {               "value": "Processing"           }       }]这是我试图实现的输出。[   {       "earningsFileId": 1234,       "paymentType": "Session",       "detailStatus": "Processing"   },   {        "earningsFileId": 1234,        "paymentType": "Session",        "detailStatus": "Processing"    }]data = [];   Object.values(livedata).map((value, keys) => {     Object.keys(value).forEach((key) => {       data[key] = livedata[keys][key]['value']     })   });
查看完整描述

1 回答

?
哆啦的时光机

TA贡献1779条经验 获得超6个赞

您需要从livedata. 你可以使用每个键-值对Object.entries和reduce数组到你想要的对象:


const livedata = [{

    "earningsFileId": {

      "value": 1234

    },

    "paymentType": {

      "value": "Session",

      "errors": [{

        "id": 802462,

        "message": "Invalid Combination",

        "status": "Processing"

      }]

    },

    "detailStatus": {

      "value": "Processing"

    }

  },

  {

    "earningsFileId": {

      "value": 5678

    },

    "paymentType": {

      "value": "Session",

      "errors": [{

        "id": 802462,

        "message": "Invalid Combination",

        "status": "Processing"

      }]

    },

    "detailStatus": {

      "value": "Processing"

    }

  }

];


const result = livedata.map(d =>

  Object.entries(d).reduce((acc, [k, v]) => {

    acc[k] = v.value;

    return acc;

  }, {}))

console.log(result);


查看完整回答
反对 回复 2021-11-12
  • 1 回答
  • 0 关注
  • 139 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信