多个循环和推送到数组的问题
Issue with multiple loops and pushing to array
我将 Angular/Typescript 与 amcharts 库(第 4 版)一起使用,特别是多线图。在构建图表数据时,它似乎只能通过单次推送到图表数组才能正常工作。
这是我的代码:
chart.data = [];
let hvacData: any = '';
for (let i = 0; i < this.chartTradeData['HVAC'].length; i++) {
const newDate = new Date(this.chartTradeData['HVAC'][i]['calendarDate']);
hvacData = this.chartTradeData['HVAC'][i]['revWorkDay'];
hvacData = parseInt(hvacData);
chart.data.push({
date: newDate,
hvacData
});
}
let plumbingData: any = '';
for (let i = 0; i < this.chartTradeData['Plumbing'].length; i++) {
const newDate = new Date(this.chartTradeData['Plumbing'][i]['calendarDate']);
plumbingData = this.chartTradeData['Plumbing'][i]['revWorkDay'];
plumbingData = parseInt(plumbingData);
chart.data.push({
date: newDate,
plumbingData
});
}
let electricalData: any = '';
for (let i = 0; i < this.chartTradeData['Electrical'].length; i++) {
const newDate = new Date(this.chartTradeData['Electrical'][i]['calendarDate']);
electricalData = this.chartTradeData['Electrical'][i]['revWorkDay'];
electricalData = parseInt(electricalData);
chart.data.push({
date: newDate,
electricalData
});
}
如上操作只会呈现图表上的第一行。我需要弄清楚如何一次完成所有这些推送,以便在循环后看起来像这样:
chart.data.push({
date: newDate,
hvacData,
plumbingData,
electricalData
});
}
我正在迭代的对象如下所示:
您需要使用addData方法:
chart.addData([...]);
我建议您尝试添加包含所有数据的数组,而不是一次添加一个项目。
在此处查看有关 incremental updates 的更多信息。
我将 Angular/Typescript 与 amcharts 库(第 4 版)一起使用,特别是多线图。在构建图表数据时,它似乎只能通过单次推送到图表数组才能正常工作。
这是我的代码:
chart.data = [];
let hvacData: any = '';
for (let i = 0; i < this.chartTradeData['HVAC'].length; i++) {
const newDate = new Date(this.chartTradeData['HVAC'][i]['calendarDate']);
hvacData = this.chartTradeData['HVAC'][i]['revWorkDay'];
hvacData = parseInt(hvacData);
chart.data.push({
date: newDate,
hvacData
});
}
let plumbingData: any = '';
for (let i = 0; i < this.chartTradeData['Plumbing'].length; i++) {
const newDate = new Date(this.chartTradeData['Plumbing'][i]['calendarDate']);
plumbingData = this.chartTradeData['Plumbing'][i]['revWorkDay'];
plumbingData = parseInt(plumbingData);
chart.data.push({
date: newDate,
plumbingData
});
}
let electricalData: any = '';
for (let i = 0; i < this.chartTradeData['Electrical'].length; i++) {
const newDate = new Date(this.chartTradeData['Electrical'][i]['calendarDate']);
electricalData = this.chartTradeData['Electrical'][i]['revWorkDay'];
electricalData = parseInt(electricalData);
chart.data.push({
date: newDate,
electricalData
});
}
如上操作只会呈现图表上的第一行。我需要弄清楚如何一次完成所有这些推送,以便在循环后看起来像这样:
chart.data.push({
date: newDate,
hvacData,
plumbingData,
electricalData
});
}
我正在迭代的对象如下所示:
您需要使用addData方法:
chart.addData([...]);
我建议您尝试添加包含所有数据的数组,而不是一次添加一个项目。
在此处查看有关 incremental updates 的更多信息。