首页 > 解决方案 > 如何用同一对象的另一个键的值更改对象的键值?

问题描述

我有一个像这样的 json 对象:

    {
       "id":"cfab8e92-025a-4070-ba1f-5bb1a8b3c9b6",
       "custome-array":[
          {
             "date1":"12/10/2019",
             "date2":"12/09/2019",
             "id":"cfab8e92-025a-4070-ba1f-5bb1a8b3c9b6",
             "more_data":{
                "id":"59c12dbf1d41c818272198b3",
                "some_no":"9204506",
                "name":"blabla"
             }
          },
          {
             "date1":"12/10/2019",
             "date2":"12/09/2019",
             "id":"cfab8e92-025a-4070-ba1f-5bb1a8b3c9b6",
             "more_data":{
                "id":"59c12dbf1d41c818272198b3",
                "some_no":"9204506",
                "name":"blabla"
             }
          }


  ]
}

我的“custome-array”是动态的

我想使用 map 函数来修改这个数据格式,以便“more_data”将只存储“name”而不是存储完整的对象。

{
       "id":"cfab8e92-025a-4070-ba1f-5bb1a8b3c9b6",
       "custome-array":[
          {
             "date1":"12/10/2019",
             "date2":"12/09/2019",
             "id":"cfab8e92-025a-4070-ba1f-5bb1a8b3c9b6",
             "more_data":"blabla"

          },
          {
             "date1":"12/10/2019",
             "date2":"12/09/2019",
             "id":"cfab8e92-025a-4070-ba1f-5bb1a8b3c9b6",
             "more_data":"blabla"

          }
  ]
}

标签: javascriptreactjs

解决方案


这适用于简单的forEach循环。您可以使用回调改变原始数组forEach's

let data = {
  "id": "cfab8e92-025a-4070-ba1f-5bb1a8b3c9b6",
  "custome-array": [{
      "date1": "12/10/2019",
      "date2": "12/09/2019",
      "id": "cfab8e92-025a-4070-ba1f-5bb1a8b3c9b6",
      "more_data": {
        "id": "59c12dbf1d41c818272198b3",
        "some_no": "9204506",
        "name": "blabla"
      }
    },
    {
      "date1": "12/10/2019",
      "date2": "12/09/2019",
      "id": "cfab8e92-025a-4070-ba1f-5bb1a8b3c9b6",
      "more_data": {
        "id": "59c12dbf1d41c818272198b3",
        "some_no": "9204506",
        "name": "blabla"
      }
    }


  ]
}

data["custome-array"].forEach(ele => {
  ele["more_data"] = ele["more_data"].name;
})
console.log(data)


推荐阅读