首页 > 解决方案 > 将 3 个键的对象转换为数组

问题描述

我是反应新手。我正在构建我的第一个项目。在项目中我使用 api。我从 api 得到这个对象:

{
"cases": {
"10/6/20": 35806972,
"10/7/20": 36156226,
"10/8/20": 36515563,
"10/9/20": 36876248,
"10/10/20": 37105925
},
"deaths": {
"10/6/20": 1049875,
"10/7/20": 1055683,
"10/8/20": 1061877,
"10/9/20": 1068040,
"10/10/20": 1071388
},
"recovered": {
"10/6/20": 24834868,
"10/7/20": 25088883,
"10/8/20": 25306451,
"10/9/20": 25509379,
"10/10/20": 25610521
}

我想把它变成这样的数组:

[{
"date":"10/6/20",
"cases": 35806972,
"deaths": 1049875,
"recovered":24834868
},
{},
{},
{},
{}
]

数组中的每个元素都将是一个对象,该对象由一个日期、一些患者、一些在同一日期恢复和死亡的人组成。

我不知道该怎么做。它并不复杂,但我不知道如何实现它

标签: javascriptreactjs

解决方案


您可以使用Object.keys和数组map方法。

let data = {
"cases": {
"10/6/20": 35806972,
"10/7/20": 36156226,
"10/8/20": 36515563,
"10/9/20": 36876248,
"10/10/20": 37105925
},
"deaths": {
"10/6/20": 1049875,
"10/7/20": 1055683,
"10/8/20": 1061877,
"10/9/20": 1068040,
"10/10/20": 1071388
},
"recovered": {
"10/6/20": 24834868,
"10/7/20": 25088883,
"10/8/20": 25306451,
"10/9/20": 25509379,
"10/10/20": 25610521
}}


let keys = Object.keys(data.cases);

let modifiedData = keys.map(key => ({
  date: key,
  cases: data.cases[key],
  deaths: data.deaths[key],
  recovered: data.recovered[key]
}));

console.log("modifiedData", modifiedData)


推荐阅读