繁体   English   中英

处理来自API的数据以进行表格渲染

[英]Processing data from API for table rendering

我从API收到类似的信息:

"stats": [
    {
        "label": 2016,
        "stats": {
            "return": 4,
            "stddev": 4,
            "sharpe": 4,
            "maxddown": 4
        }
    },
    {
        "label": 2015,
        "stats": {
            "return": 5,
            "stddev": 5,
            "sharpe": 5,
            "maxddown": 5
        }
    },
    {
        "label": 2014,
        "stats": {
            "return": 6,
            "stddev": 6,
            "sharpe": 6,
            "maxddown": 6
        }
    }
]

我应该将数据转换为对象数组,这些对象将用于在Ember应用程序中呈现表格。 我不知道如何...表的最终数据应如下所示:

const tableData = [
    {
        name: 'return',
        2016: 4,
        2015: 5,
        2014: 6
    }, {
        name: 'stddev',
        2016: 4,
        2015: 5,
        2014: 6 
    }, {
        name: 'sharpe',
        2016: 4,
        2015: 5,
        2014: 6  
    }, {
        name: 'maxddown',
        2016: 4,
        2015: 5,
        2014: 6  
    }
]

获取stats的密钥并对其进行迭代。 在迭代周期中,您需要遍历所有stats ,使用选定的key访问每个stats的属性并创建您的对象。

 const stats = [ { "label": 2016, "stats": { "return": 4, "stddev": 4, "sharpe": 4, "maxddown": 4 } }, { "label": 2015, "stats": { "return": 5, "stddev": 5, "sharpe": 5, "maxddown": 5 } }, { "label": 2014, "stats": { "return": 6, "stddev": 6, "sharpe": 6, "maxddown": 6 } } ]; const keys = Object.keys(stats[0].stats); const mapped = keys.map(key => { const obj = { name: key }; stats.forEach(item => { obj[item.label] = item.stats[key]; }); return obj; }); console.log(mapped); 

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM