0
我有一些JSON數據,我想過濾幾個下拉菜單。並非所有的下拉列表都會填充,因此當我在下面運行grep時,它不會返回所有我想要的結果。您可以爲grep生成動態和多個條件嗎?
首先我將每個下拉列表的選定值放入一個變量中。如果選擇第一個索引,則該變量爲空。然後我正在過濾,但是如果有任何變量爲空(意味着下拉未更改),它會將空值傳遞給grep條件,從而不會返回正確的數據。有沒有辦法根據變量爲null來生成我的多個條件?我知道我可以在嵌套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 2014-11-07 05:28:57
除了空字符串外,我還添加了代碼來測試null。 – Barmar 2014-11-07 16:22:36
啊,你是絕對正確的!它是一個字符串,所以將它從null更改爲空的''''工作。謝謝!! – drpcken 2014-11-07 16:25:24