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

我正在尝试将数组内的多个对象展平。它不断将其扁平化为一个数组。我希望它在数组中有多个对象,但也希望除键和值之外的所有内容都变平。


这是名为“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']

     })

   });


慕仙森
浏览 149回答 1
1回答

哆啦的时光机

您需要从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);
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript