WhereArtTho
JavaScript
function where(collection, source) {
var sourceKeys = Object.keys(source);
return collection.filter(function(obj) {
return sourceKeys.every(function(key) {
return obj.hasOwnProperty(key) && obj[key] === source[key];
});
}
where([{
first: "Romeo",
last: "Montague"
}, {
first: "Mercutio",
last: null
}, {
first: "Tybalt",
last: "Capulet"
}], {
last: "Capulet"]
});
console.log(sourceKeys); //outputs ["last"]