Higher Order Function & currying
by Christopher McCulloh
HTML
<div id="output"></div>
JavaScript
var dollarFormatter = function dollarFormatter( num ) {
return ['$', num].join('');
}
var percentFormatter = function dollarFormatter( num ) {
return ['%', num].join('');
}
var logger = function logger( prefix ) {
return function (formatter) {
return function( message ) {
$('#output').append( [prefix, ' ', formatter(message), '<br>'].join('') );
}
}
}
var log = logger('prefix');
log(dollarFormatter)(9);
log(percentFormatter)(9);
var people = [
{id: 1, name: 'Mike', age: 9},
{id: 1, name: 'John', age: 9},
{id: 1, name: 'Jim', age: 9},
{id: 1, name: 'Jake', age: 9},
{id: 1, name: 'James', age: 9},
{id: 1, name: 'Paul', age: 9}
]
var filtered = people.map (
function(item) {
return item.name;
}).filter(
function (item) {
return ( item.name.indexOf("i") !== -1 );
}
var filtered = people.filter(
function (item) {
return ( item.name.indexOf("i") !== -1 );
}
);
console.table(filtered);