Фильтрация данных, полученных 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);});

Однако это, кажется, нарушает мой код и приводит к загрузке пустой веб-страницы вместо графика, наложенного на карту. Я неправильно фильтрую данные?

0 ответов

Другие вопросы по тегам