【问题标题】:How to get object key from the api call dynamically and change the payload structure format?如何从 api 调用中动态获取对象键并更改有效负载结构格式?
【发布时间】:2021-05-28 17:29:20
【问题描述】:

如何通过动态使用键将以下当前对象数组存储到对象键值对中?我有另一个使用相同 api 调用的 api,但不是使用键 DescDSTR_NR,而是使用不同的键:

{
  list: [
    [
      {
        Desc: {
          value: '7777 - Florida Hurricane'
        },
        DSTR_NR: {
          value: '7777'
        }
      },
      {
        Desc: {
          value: '7172 - Virginia Severe Storm(s)'
        },
        DSTR_NR: {
          value: '7172'
        }
      }
    ]
  ]
}

我尝试执行以下操作,但没有帮助:

const data = list.map((item) => {
  return {
    name: Object.values(item),
    value: Object.values(item)
  }
})

我想要的格式是这样的:

{
  list: [
    {
      name: '7777',
      value: '7777 - Florida Hurricane'
    },
    {
      name: '7172',
      value: '7172 - Virginia Severe Storm(s)'
    }
  ]
}

【问题讨论】:

    标签: javascript reactjs ecmascript-6


    【解决方案1】:

    Object.values 给出了一个包含该对象所有值的数组。

    此外,您的列表是一个数组数组,因此您必须先将其展平,或者如果它只有一个值,请使用 list[0]

    一个示例解决方案如下

    const data = {
      "list": [
        [{
          "Desc": {
            "value": "7777 - Florida Hurricane"
          },
          "DSTR_NR": {
            "value": "7777"
          }
        }, {
          "Desc": {
            "value": "7172 - Virginia Severe Storm(s)"
          },
          "DSTR_NR": {
            "value": "7172"
          }
        }]
      ]
    };
    
    
    const newList = data.list.flat().map(item => ({
      name: item.DSTR_NR.value,
      value: item.Desc.value
    }));
    
    console.log({
      list: newList
    })

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-12
      • 2019-09-14
      • 2020-06-30
      相关资源
      最近更新 更多