Проблема с несколькими циклами и перемещением в массив - PullRequest
0 голосов
/ 16 марта 2019

Я использую 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 Ответ

1 голос
/ 23 апреля 2019

Вам необходимо использовать метод addData :

chart.addData([...]);

Я рекомендую вам попробовать добавлять массивы со всеми данными вместо одного элемента за раз.

Узнайте больше о инкрементных обновлениях здесь.

...