Skip to content

Instantly share code, notes, and snippets.

@DominicFinn
Last active August 29, 2015 14:05
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save DominicFinn/551dc83911221e5a71c3 to your computer and use it in GitHub Desktop.
Save DominicFinn/551dc83911221e5a71c3 to your computer and use it in GitHub Desktop.
Map / Reducing in Javascript yourself.
var people = [
{ name:"dom", age:22}
, { name:"paddy", age:22}
, { name:"pete", age:22}
, { name:"dick", age:100}
]
var query1 = { field: "age", found: function(field) {
if(field > 50) {
return true;
} else {
return false;
}
}
};
var query2 = { field: "age", found: function(field) {
if(field < 23) {
return true;
} else {
return false;
}
}
};
var query3 = { field: "name", found: function(field) {
if(field == 'dom') {
return true;
} else {
return false;
}
}
};
var filter = function(people, query) {
var peopleFound = [];
for(var i = 0; i < people.length; i++) {
if(query.found(people[i][query.field])) {
peopleFound.push(people[i]);
}
}
return peopleFound;
}
var peopleOver50 = filter(people, query1);
var peopleUnder23 = filter(people, query2);
var peopleCalledDom = filter(people, query3);
console.log(peopleOver50);
console.log(peopleUnder23);
console.log(peopleCalledDom);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment