Я работаю над таблицей в 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, два фильтра должны быть точно такими же.Спасибо за ваше время!