Skip to content

Instantly share code, notes, and snippets.

@ProspektsMarch22
Created September 19, 2022 23:19
Show Gist options
  • Save ProspektsMarch22/9c09004e3d9e1366bd7a9a291a2a9831 to your computer and use it in GitHub Desktop.
Save ProspektsMarch22/9c09004e3d9e1366bd7a9a291a2a9831 to your computer and use it in GitHub Desktop.
Currying Example in Javascript
const players = [
{ age: 5, sport: "soccer", city: "Chicago", dateJoined: new Date('2021-01-20') },
{ age: 6, sport: "baseball", city: "Boulder", dateJoined: new Date('2019-12-30') },
{ age: 10, sport: "soccer", city: "Chicago", dateJoined: new Date('2020-11-12') },
{ age: 11, sport: "handball", city: "San Francisco", dateJoined: new Date('2020-08-21') },
{ age: 6, sport: "soccer", city: "Chicago", dateJoined: new Date('2021-07-06') },
{ age: 8, sport: "softball", city: "Boulder", dateJoined: new Date('2019-02-27') },
{ age: 7, sport: "tennis", city: "San Francisco", dateJoined: new Date('2019-05-31') },
{ age: 4, sport: "handball", city: "San Francisco", dateJoined: new Date('2018-03-10') }
]
const setFilter = array => key => value => array.filter(x => x[key] === value);
const filterPlayers = setFilter(players);
const filterPlayersByCity = filterPlayers('city');
const filteredPlayersBySanFrancisco = filterPlayersByCity('San Francisco');
const filterPlayersBySport = filterPlayers('sport');
const filteredPlayersBySoccer = filterPlayersBySport('soccer');
const sortArrayByValue = sortArray => sortKey => {
return sortArray.sort(function(a, b){
if(a[sortKey] < b[sortKey]) { return -1; }
if(a[sortKey] > b[sortKey]) { return 1; }
return 0;
});
}
const sortSanFrancisco = sortArrayByValue(filteredPlayersBySanFrancisco);
const sortSFByDateJoined = sortSanFrancisco("dateJoined");
console.log(sortSFByDateJoined);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment