簡體   English   中英

在 Angular 中將數組轉換為對象

[英]Convert Arrays to Object in Angular

我正在 Angular 8 中使用 d3 創建折線圖。我遵循一些TEMPERATURES示例。 但是我的 API 正在獲得以下格式。

來自 API 的數據

{
    "status": 200,
    "data": {
        "dashboard_data": [
            [
                2014-04-01,
                2920.0,
                239.44000000000003
            ],
            [
                2014-04-02,
                2260.0,
                185.32000000000002
            ],
            [
                2014-04-03,
                156.0,
                12.792
            ],
            [
                2014-04-04,
                980.0,
                80.36
            ],
            [
                2014-04-05,
                1515.0,
                124.22999999999999
            ],
        ],


    }
}

需要這種格式的數據

TEMPERATURES = [
    {
        'values': [
            {'date': new Date('2012-09-05'), 'temperature': 77.7},
            {'date': new Date('2012-09-06'), 'temperature': 74.2},
            {'date': new Date('2012-09-07'), 'temperature': 76.0},
        ]
    },
    ];

我正在尋找解決方案,如何將dashboard_data轉換為values TIA

像這樣嘗試:

 TEMPERATURES = [];

  constructor() {
    let obj = {};
    obj["values"] = this.input.data.dashboard_data.map(item => ({
      date: new Date(item[0]),
      temperature : item[2]
    }))
    this.TEMPERATURES.push(obj)
  }

工作演示

目前尚不清楚如何轉換溫度。 但是,您可以嘗試以下方法:

let temperatures = [];
const result = obj.data.dashboard_data
    .map(([d, h, t]) => ({date: new Date(d), temperature: t}));
temperatures.push({values: result});

一個例子:

 let obj = { "status": 200, "data": { "dashboard_data": [ [ 2014 - 04 - 01, 2920.0, 239.44000000000003 ], [ 2014 - 04 - 02, 2260.0, 185.32000000000002 ], [ 2014 - 04 - 03, 156.0, 12.792 ], [ 2014 - 04 - 04, 980.0, 80.36 ], [ 2014 - 04 - 05, 1515.0, 124.22999999999999 ], ] } }; let temperatures = []; const result = obj.data.dashboard_data .map(([d, h, t]) => ({date: new Date(d), temperature: t})); temperatures.push({values: result}); console.log(temperatures);

您必須遍歷dashboard_data數組中的每個項目,然后從中選擇datetemperature並將其推送到TEMPERATURE數組:

dashboard_data.forEach((item)=>{
  TEMPERATURES.push({'date': new Date(item[0]), 'temperature': item[2]});
 }
)

 let dashboard_data = [ [ '2014-04-01', 2920.0, 239.44000000000003 ], [ '2014-04-02', 2260.0, 185.32000000000002 ], [ '2014-04-03', 156.0, 12.792 ], [ '2014-04-04', 980.0, 80.36 ], [ '2014-04-05', 1515.0, 124.22999999999999 ], ] let TEMPERATURES = []; dashboard_data.forEach((item)=>{ TEMPERATURES.push({'date': new Date(item[0]), 'temperature': item[2]}); } ) console.log(TEMPERATURES);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM