出现多个循环并推送到数组

时间:2019-03-16 03:30:41

标签: javascript arrays typescript amcharts amcharts4

我将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
      });
    }

我要遍历的对象看起来像这样:

enter image description here

1 个答案:

答案 0 :(得分:1)

您需要使用addData方法:

chart.addData([...]);

我建议您尝试一次添加包含所有数据的数组,而不是一次添加一个项。

在此处查看有关incremental updates的更多信息。