Фильтрация данных, полученных d3.csv в Javascript
В настоящее время у меня есть приложение deck.gl, которое читает файл csv с использованием d3.csv и наносит на карту данные, наложенные на карту. Мой код для получения данных выглядит следующим образом:
import {csv as requestCsv} from 'd3-request';
const DATA_URL = './data.csv';
requestCsv(DATA_URL, (error, response) => {
if (!error) {
const data = response;//.map(d => d);
this.setState({data});
}
});
Мой конструктор для реквизита (и где я определяю состояния) следующий:
constructor(props) {
super(props);
this.state = props.state || {
data: null,
settings: {
day: 4,
hour: 9
}
};
Я хочу фильтровать данные на основе дня и часа состояния настроек. В файле csv есть столбцы для дня и часа. В конечном счете, я хочу, чтобы это было динамически основанным на вводе ползунка, но сейчас я жестко закодировал их.
Я пытаюсь сделать фильтрацию следующим образом:
const {data, settings} = this.state;
const filteredData = data.filter(d => {return (d.day === settings.day) && (d.hour === settings.hour);});
Однако это, кажется, нарушает мой код и приводит к загрузке пустой веб-страницы вместо графика, наложенного на карту. Я неправильно фильтрую данные?