У меня есть данные JSON, которые я хочу фильтровать с помощью нескольких выпадающих меню. Не все выпадающие меню будут заполнены, и из-за этого, когда я запускаю grep ниже, он не возвращает все результаты, которые я хочу.Можете ли вы генерировать динамические и множественные условия для grep?
Сначала я помещаю выбранное значение каждого выпадающего списка в переменную. Если выбран первый индекс, переменная имеет значение null. Затем я фильтрую, но если какая-либо из переменных равна нулю (это означает, что выпадающий список не был изменен), он передает нулевое значение в условие grep, тем самым не возвращая правильные данные. Есть ли способ генерировать мои множественные условия на основе переменных, которые являются нулевыми? Я знаю, что я мог бы делать вложенные после вложенных операторов if, но это не кажется эффективным.
var selectedVoltage = ($selectVoltage[0].selectedIndex > 0) ? $selectVoltage.val() : null;
var selectedMaxLPA = ($selectMaxLPA[0].selectedIndex > 0) ? $selectMaxLPA.val() : null;
var selectedFluidLevel = ($selectFluidLevel[0].selectedIndex > 0) ? $selectFluidLevel.val(): null;
var filtered = $.grep(json ,function(product) {
return product.voltage === selectedVoltage &&
product.lpa <= selectedMaxLPA &&
product.fluid_level <= selectedFluidLevel;
//is it possible to dynamically generate these conditions?
});
я сделал именно это, однако, если бы я только выбрать значение напряжения не возвращает никаких результатов. он должен вернуть все, что имеет напряжение, которое я выбрал, без фильтрации для двух других полей. – drpcken
Я добавил код для проверки на 'null' в дополнение к пустым строкам. – Barmar
Ahhh вы абсолютно правы! Это строка, которая меняет ее с нуля на пустой '' ''. Спасибо!! – drpcken