How to have multiple filter on an JQuery Array
How to have multiple filter on an JQuery Array
by Akram kamal
JavaScript
// open your console
var minPrice = 201,
maxPrice = 299,
products = [{"price":"200","color":"red","size":"small"},{"price":"250","color":"brown","size":"medium"},{"price":"300","color":"red","size":"large"}],
predicates = [
function checkMinPrice(product)
{
return parseFloat(product.price) > minPrice;
},
function checkMaxPrice(product)
{
return parseFloat(product.price) < maxPrice;
}
],
filteredProducts;
if(!minPrice && !maxPrice)
{
filteredProducts = products;
}
else
{
filteredProducts = $.grep(products, function (element, index)
{
for (var i=0; i<predicates.length; i++)
{
if (!predicates[i](element)) return false;
}
return true;
});
}
console.log(filteredProducts);