javascript - 将 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
},
{},
{},
{},
{}
]
数组中的每个元素都将是一个对象,该对象由一个日期、一些患者、一些在同一日期恢复和死亡的人组成。
我不知道该怎么做。它并不复杂,但我不知道如何实现它
解决方案
您可以使用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)
推荐阅读
- angular - 如何在量角器中执行测试时排序?
- javascript - 如何生成范围内的唯一数字?
- android - EventBus 无法启动活动
- drupal-7 - 我想在drupal 7中发送批量邮件后如何获取所有Web表单提交数据
- windows - 使用指令作为参数调用 PowerShell 时出现问题
- android - RecyclerView SnapHelper - 如何更改已捕捉和未捕捉项目的背景?
- javascript - 为什么换行符在我的情况下不起作用?
- node.js - Joi - 无效的正则表达式
- php - CakePHP 列表查找器方法未按预期返回数组
- python - 在 Django Rest Framework 中列出具有动态字段的序列化程序