[英]Populate JavaScript Array from JSON Format
嗨,我有如下所示的 JSON 數據:
[
{"Mean of Arrivals for each hour":
{"03-04":-35.62,"04-05":-3.62,"05-06":-3.7}
}
]
我想把它推到一個數組,讓數組看起來像這樣:
[
{x: 03-04 y: -35.62},
{x: 04-05, y: -3.62},
{x: 05-06, y: -3.7}
]
現在,它看起來像下面的數組,我不知道如何將它格式化為上面的樣子。 下面也是我用來填充數組的代碼。 想要一些關於如何格式化數組的幫助。
[
x: {03-04: -35.62, 04-05: -3.62, 05-06: -3.7},
y: {03-04: -35.62, 04-05: -3.62, 05-06: -3.7}
]
var dataPoints = []; // final array with data
var chartData = new google.visualization.DataTable();
chartData.addColumn('string', 'Stunde');
chartData.addColumn('number', 'Ankunft');
function addData(data) {
for (var i = 0; i < data.length - 1; i++) {
dataPoints.push({
x: data[i]["Mean of Arrivals for each hour"],
y: data[i]["Mean of Arrivals for each hour"]
});
}
dataPoints.forEach(function (row) {
chartData.addRow([row.x, row.y]);
});
console.log(dataPoints);
var chart = new google.charts.Bar(document.getElementById('plot3'));
chart.draw(chartData, google.charts.Bar.convertOptions(options));
};
$.getJSON(url, addData);
使用for...in
循環遍歷屬性,構造 JSON 並推送到數組:
const data = [ {"Mean of Arrivals for each hour": {"03-04":-35.62,"04-05":-3.62,"05-06":-3.7} } ] const result = [], r = data[0]["Mean of Arrivals for each hour"]; for(const key in r) result.push({x: key, y: r[key]}) console.log(result);
這將所有內容都展平為單個數據數組,然后通過 map() 處理對象。 它將容納對象內的任意數量的數組,以及這些數組內的任意數量的坐標集。
let obj = [ {"Mean of Arrivals for each hour": {"03-04":-35.62,"04-05":-3.62,"05-06":-3.7} } ] let result = obj.map(Object.values).flat().map(Object.entries).flat().map(e => ({x:e[0], y:e[1]})) console.log(result)
迭代數組中子對象的 Object.entries() 並為每個條目創建一個新對象
const data = [ {"Mean of Arrivals for each hour": {"03-04":-35.62,"04-05":-3.62,"05-06":-3.7} } ] const key = "Mean of Arrivals for each hour", res = []; data.forEach(o => Object.entries(o[key]).forEach(([x, y]) => res.push({x, y}))) console.log(res)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.