[英]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
數組中的每個項目,然后從中選擇date
和temperature
並將其推送到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.