Как использовать линейный график Google двух разных массивов длины - PullRequest
0 голосов
/ 23 мая 2018

Я пытаюсь нарисовать линейную диаграмму Google, где каждая линия может иметь различное количество точек данных.Это мой формат массива один с длиной 2 и один с длиной 3.Я не знаю, как решить эту проблему, любая помощь заметна

Array [ Date 2018-05-04T18:30:00.000Z, 45 ]
Array [ Date 2018-05-22T18:30:00.000Z, 234, 234, 234 ]

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

for (var k = 0; k < data1.queryA.length; k++) {
  data.addColumn('number', data1.queryA[k].keyword);
}
for (var i = 0; i < data1.query.length; i++) {
  var arr = [];
  alert(data1.query[i].date.length);
  for (var j = 0; j < data1.query[i].date.length; j++) {
    arr.push(parseInt(data1.query[i].date[j].page));
  }
  var test = [new Date(data1.query[i].datee)];
  console.log(test.concat(arr));
  data.addRow(test.concat(arr));
}

1 Ответ

0 голосов
/ 23 мая 2018

Каждая строка должна иметь длину, точно соответствующую количеству столбцов.Вы можете «правой кнопкой» дополнить свои строки значениями null, чтобы показать отсутствующие точки данных:

const data = [
  [ new Date("2018-05-04T18:30:00.000Z"), 45 ],
  [ new Date("2018-05-05T18:30:00.000Z"), 45, 12 ],
  [ new Date("2018-05-22T18:30:00.000Z"), 234, 234, 234 ]
];

const padNull = (size, data) =>
  data.map(r =>
    [...r, ...Array(size - r.length).fill(null)]
  );
  
  
console.log(padNull(4, data));
  

Если вы не знаете, сколько столбцов вам нужно, вам нужно найти самый большой набор данных:

const data = [
  [ new Date("2018-05-04T18:30:00.000Z"), 45 ],
  [ new Date("2018-05-05T18:30:00.000Z"), 45, 12 ],
  [ new Date("2018-05-22T18:30:00.000Z"), 234, 234, 234 ]
];

const columnCount = Math.max(...data.map(r => r.length));
console.log(columnCount);
...