Фильтры JavaScript возвращают ноль - PullRequest
0 голосов
/ 30 ноября 2018

Я работаю над таблицей в javascript, с несколькими фильтрами критериев поиска = [a, b, c], извлекаемыми из текстовых полей в моем html.Следующий код возвращает отфильтрованные результаты, как и ожидалось:

data = [{a: Foo, b: Bar, c:Blah}, {a: Blah, b: Blah, c:Blah}, ...]


var filteredData = Data;

var aVal = d3.select('#a').node().value;

filteredData = filteredData.filter(Report => Report.a === aVal);

, но когда я пытаюсь выполнить цикл по всем критериям, используя:

  var aVal = d3.select('#a').node().value;
  var bVal = d3.select('#b').node().value;
  var cVal = d3.select('#c').node().value;
  var filters = {"a": aVal, "b": bVal, "c": cVal};

  Object.entries(filters).forEach(([key, value]) => {
    // console.log(MULTIPLE LOGS >> SEE BELOW)
    if (value != "") {      
      filteredData = filteredData.filter(Report => Report.key === value);
    }
  });

, в консоли я получаю следующие результаты:

console.log (фильтрованные данные) возвращает: [{a: Foo, b: Bar, c: Blah}, {a: Foo, b: Bar, c: Blah}, ...]:

console.log (FilterData [0]) возвращает {a: Foo, b: Bar, c: Blah}

console.log (FilterData [0] .a) возвращает «Foo»

console.log (ключ, значение);возвращает "a", "Foo"

console.log (FilterData [0] .value) возвращает NULL

console.log (filters) возвращает {"Foo", "", ""}

(ЭТО ОЖИДАЕТСЯ)

console.log (FilterData [0] .key) возвращает NULL

Я знаю, что могу использовать операторы OR для фильтрациитаблица и получить результаты, которые я хочу, но, насколько я понимаю, если все, что я ввел, было aVal, два фильтра должны быть точно такими же.Спасибо за ваше время!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...