首页 > 解决方案 > 在 JavaScript 中映射数据对象

问题描述

我是 JavaScript 新手,不要介意提出幼稚的问题

我收到来自 API 的响应,格式如下

const response = {
    "slaTrend": {
            "acheived": {
                "01-01": 74.0740740741,
                "01-02": 74.0740740741,
                "01-03": 55.5555555556
            },
            "breached": {
                "01-01": 636.6716854642,
                "01-02": 636.5140839914,
                "01-03": 477.4679362239
            }
        }
  }

我需要如下输出。

[{name: 'acheived', dates: ['01-01', '01-02', '01-03'], values: [74.0740740741, 74.0740740714, 74.0740740741]}, {name: 'breached', dates: ['01-01', '01-02', '01-03'], values: [636.6716854642, 636.514083991, 477.4679362239]}]

有人可以帮忙吗?先感谢您

标签: javascriptarraysobject

解决方案


const newData = [];
const baseObj = response["slaTrend"];
Object.keys(baseObj).forEach(function(key){
    const dates = Object.keys(baseObj[key]);
    const vals = Object.values(baseObj[key]);
    newData.push({name: key, dates: dates, values: vals});
});
console.log('%j', newData);

推荐阅读