Skip to content

Instantly share code, notes, and snippets.

@justinobney
Last active August 26, 2015 15:35
Show Gist options
  • Save justinobney/66fcf7125faf4345f0fd to your computer and use it in GitHub Desktop.
Save justinobney/66fcf7125faf4345f0fd to your computer and use it in GitHub Desktop.
Simple eample showing the usefulness of function composition in javascript
function stringStartsWith(search, coll, prop, transform){
return coll.filter(function(item){
var key = transform ? transform(item[prop]) : item[prop];
return key.indexOf(search) === 0
});
}
function reverse(str){
return str.split('').reverse().join('')
}
function lower (str){
return str.toLowerCase()
}
var o = [
{name: 'foo'},
{name:'BAR'}
]
stringStartsWith('BAR', o,'name'); // FOUND
stringStartsWith('bar', o,'name', lower); // FOUND
stringStartsWith('RAB', o,'name', reverse); // FOUND
stringStartsWith('bar', o,'name', reverse); // NOT FOUND
var lowerBack = _.compose(lower, reverse)
stringStartsWith('bar', o,'name', lowerBack); // FOUND
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment