J'ai actuellement du code pour filtrer un tableau en fonction de la fourchette de prix en utilisant un curseur. Je dois être en mesure d'ajouter des cases à cocher pour différentes tailles et couleurs afin que je puisse également filtrer en utilisant leurs valeurs. C'est le code que j'ai jusqu'à présent, mais je ne sais pas comment implémenter les cases à cocher afin d'avoir plusieurs façons de filtrer le tableau.Comment avoir plusieurs filtres sur un tableau 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++;
}
});
}
Merci à l'avance pour toute aide »
Fiddle http://jsfiddle.net/ltbmedia/86pEn/
Merci Matt, je suppose que chaque « fonction predicate1 (obj) {/ * .. . * /} est pour chaque élément du filtre (c'est-à-dire la taille), n'est-ce pas? – dbach
C'est vrai. Chaque prédicat testerait une condition distincte sur chaque élément. Dans l'exemple de code de votre question, vous utiliseriez deux prédicats, l'un pour tester la condition de prix minimum et l'autre pour tester la condition de prix maximum. BTW, un prédicat est une fonction qui renvoie une valeur booléenne. –
Merci encore, mais je ne suis pas sûr de savoir ce que vous voulez dire. Comment un test de fonction de prédiction pour une valeur d'élément spécifique, désolé, m'a cogné la tête contre le mur toute la journée sur celui-ci! – dbach