Как скопировать данные из массива на диаграмму тепловой карты Apex? - PullRequest
0 голосов
/ 27 января 2020

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

    this.state = {   
        seriesCompact: [{
            name: '1',
            data: [45, 123, 4864, 1531, 121, 15]
            },
            {
                name: '2',
                data: [534, 4534, 12, 784, 121, 8847]
            },
            {
                name: '3',
                data: [453, 453, 12, 453, 135, 51]
            },
            {
                name: '4',
                data: [4, 453, 45, 12, 44, 153]
            },
            {
                name: '5',
                data: [51, 513, 45, 12, 84, 21]
            },
            {
                name: '6',
                data: [434, 453, 8464, 534, 87643, 543]
            },
        ],
    }

Я получил данные из базы данных и сохранил их в массиве. Он содержит 36 целочисленных значений.

let data = [543,220195,56767,578433,45773,573335,501974,846359,88518,673208,
10086,705133,332856,449014,167144,102293,241678,661375,322747,830976,841206,254525,         17574,80045,717178,290102,59301,368118,
852860,246908,453454,601215,640807,530396,219809,986924];

Я хочу заменить данные из 6 полей данных выше на значения из массива.

Каков наилучший способ сделать это?

Спасибо вы!

Ответы [ 2 ]

0 голосов
/ 29 января 2020

Это действительно зависит от структуры ваших данных. Я предполагаю, что ваши данные последовательны в группах по 6 (6 на серию). Если вы предоставите более подробную информацию, я могу обновить свой ответ.


const updateSeriesData = data => {
  // get the current series
  let { seriesCompact } = this.state;

  // move through data array and assign `seriesCompact[i].data` a new six values
  for (let i = 0; i < 6; i++) {
    // slice the data beginning at 
    // (6 * i) and ending at (6 * (i + 1)) noninclusive
    seriesCompact[i].data = data.slice(6 * i, 6 * (i + 1));
  }

  // set state with new series
  this.setState({ seriesCompact });
}
0 голосов
/ 27 января 2020

Надеюсь, это поможет:

for(let serie of state.seriesCompact){
    serie.data=data; 
    num=num+6;
}
//Result:
console.log(state.seriesCompact);
...