JSFiddle - React, Tailwind, and code Playground
JavaScript
var products = [{"price": 150, "color":"blue"},
{"price": 50, "color":"blue"},
{"price": 150, "color":"red"},
{"price": 50, "color":"red"}];
function validateProduct(listOfFunctions) {
return function(currentProduct) {
return listOfFunctions.every(function(currentFunction) {
return currentFunction(currentProduct);
});
}
}
function cheap(product) {
return product.price < 100;
}
function red(product) {
return product.color == "red";
}
function filterMyProducts(criteria) {
return products.filter(validateProduct(criteria));
}
console.log(filterMyProducts([cheap, red]));