0
我目前有一些代碼可以使用滑塊基於價格範圍篩選數組。我需要能夠添加各種大小和顏色的複選框,以便我也可以使用它們的值進行過濾。這是迄今爲止的代碼,但我不確定如何實現複選框,以便我有多種方式來過濾數組。如何在JQuery數組上使用多個篩選器
//this is the main generated array
var product = [{"price":"200","color":"red","size":"small"},
{"price":"250","color":"brown","size":"medium"},
{"price":"300","color":"red","size":"large"}];
// array to display filtered array
var filteredProducts = [];
var key = 0;
//start of price range filter
if(!minPrice && !maxPrice){
filteredProducts = products;
} else{
$.each(products, function(i, object) {
var curentPrice = parseFloat(object.price);
var priceMinOk = true;
var priceMaxOk = true;
// filter results match the price range
if(maxPrice || minPrice){
if(maxPrice && maxPrice<curentPrice){
priceMaxOk = false;
}
if(minPrice && minPrice>curentPrice){
priceMinOk = false;
}
}
// loop over list and get only related to new array
if(priceMinOk && priceMaxOk){
filteredProducts[key] = object;
key++;
}
});
}
預先感謝任何幫助」
小提琴http://jsfiddle.net/ltbmedia/86pEn/
感謝馬特,我假設每個「功能predicate1(OBJ){/ * .. 。* /}用於每個過濾元素(即大小),對嗎? – dbach
沒錯。每個謂詞將測試每個元素的單獨條件。在你的問題的例子代碼中,你會使用兩個謂詞,一個用來測試最低價格條件,一個用來測試最高價格條件。順便說一句,謂詞是一個返回布爾值的函數。 –
再次感謝,但不知道我很清楚你的意思。對於一個特定的元素值,預測功能測試如何,對不起,一直在我的頭撞牆在這一整天! – dbach