Всем привет. Подскажите, пожалуйста, как правильно работать с диапазоном в данном случае? У меня приходят данные в таком формате. Сейчас в примере видно, как выглядит кривая. Как основываясь на текущие данные, применю слово масштабировать, кривую, чтобы она более информативно и похоже на график выглядела?
Данные повреждены. В некоторых объектах нет свойства value
. Добавил такую фильтрацию и график выглядит как надо.
chartPoints = chartPoints.filter((chp) => {
return chp.date && chp.value
})
chartPoints.forEach((d) => {
d.date = new Date(d.date)
d.value = Number(d.value)
})
Если копать глубже, то вывод из ситуации - нужно аккуратнее преобразовывать значения из свойств объекта в числа. Например падать с ошибкой если данные невалидные
d.value = Number(d.value)
иногда этот код выполняется со значением undefined
и Number(undefined)
возвращает NaN
. Это значение имеет тип number
как и любое другое число, но числом не является. d3
со своей стороны стоило бы кидать ошибку когда ее просят отрендерить значение NaN
, или хотя бы ворнинг.
Спасибо за помощь.