Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从api调用中动态获取对象密钥并更改有效负载结构格式?_Javascript_Reactjs_Ecmascript 6 - Fatal编程技术网

Javascript 如何从api调用中动态获取对象密钥并更改有效负载结构格式?

Javascript 如何从api调用中动态获取对象密钥并更改有效负载结构格式?,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,如何通过动态使用键将以下当前对象数组存储到对象键和值对中?我有另一个api使用相同的api调用,但它没有使用键Desc和DSTR_NR,而是使用不同的键: { list: [ [ { Desc: { value: '7777 - Florida Hurricane' }, DSTR_NR: { value: '7777' } }, {

如何通过动态使用键将以下当前对象数组存储到对象键和值对中?我有另一个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)'
    }
  ]
}

Object.values
给出该对象所有值的数组

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

示例解决方案如下所示

const数据={
“名单”:[
[{
“描述”:{
“值”:“7777-佛罗里达飓风”
},
“DSTR_NR”:{
“值”:“7777”
}
}, {
“描述”:{
“值”:“7172-弗吉尼亚州强风暴”
},
“DSTR_NR”:{
“值”:“7172”
}
}]
]
};
const newList=data.list.flat().map(项=>({
名称:item.DSTR_NR.value,
值:item.Desc.value
}));
console.log({
列表:新列表
})