У меня есть переменная объекта, хранящая значения гистограммы, и кнопка для обновления этих значений:
var config = {
type: 'bar',
data: {
datasets: [{
type: 'bar', label: 'Dataset 1',
data: [0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0]}]}};
document.getElementById('add5').addEventListener('click', function() {
tnow = moment().format('HH');
switch (tnow) {
case'8': config.data.datasets[0].data[0] += 5; break;
case'9': config.data.datasets[0].data[1] += 5; break;
// ...
case'23': config.data.datasets[0].data[15] += 5; break;
case'24': config.data.datasets[0].data[16] += 5; break;
default: alert('doot');}
window.myLine.update()});
<button id="add5">+5</button>
Я пытаюсь сохранить указатель значения в качестве переменной, чтобы сократить код.Попытка
var h = [];
var h = config.data.datasets[0].data.slice();
, но
case '23': h[15] += 5; break;
не обновляет значение гистограммы.Однако alert(h[15])
возвращает точное значение диаграммы.
Как обновить значения диаграммы с помощью переменных массива?
ПОЛНЫЙ КОНТЕКСТ:
Использование moment.js и chart.js для создания гистограммы, которая обновляет значение в соответствии с часами реального времени.Пример: если сейчас 7:30 вечера, нажатие «+5» добавит 5 к панели, расположенной в 7 вечера.case '8'
= 8 утра, case '23'
= 11 вечера и т. Д. Я намереваюсь добавить второй набор данных, который отображается, когда значения превышают 60, используя if
, чтобы изменить значение второго набора данных (включая config.data …
в два раза больше - делаякод довольно длинный).