How to use curry functions to improve code
Refactore this
function filterByName(list, name) { return list.filter(function(nameToFilter) { // nameToFilter is declared at this point return function(item) { // item is declared here return item.name !== nameToFilter; } }(name)); } Into this
// Generic curried functions const filter = predicate => array => array.filter(predicate); const filterBy = propertyName => propertyValue => filter(item => itempropertyName === propertyValue);
// Usage: const filterByName = filterBy("name"); const filterByNameJohn = filterByName("John");
console.log(filterByNameJohn(list));