Bonfire: Where art thou

În sfârșit am priceput cum funcționează array.filter in Javascript. Un lucru e clar pentru mine, cam greu funcționează cerebelul după o anumită oră. Mai jos e codul care funcționează pentru bonfire-ul în 18 Oct. 2015.

function where(collection, source) {
var arr = [];
// * loop through array to get the objects
// * loop through object for var prop in obj
arr = collection.filter(function(el, id){

for ( var prop in source ) {
console.log(Object.keys(el).indexOf(prop) + prop);
if ( Object.keys(el).indexOf(prop) < 0 ) {
return false;
}
if ( el[prop] != source[prop] ) {
return false;
}
}
return true;

});
// What's in a name?

return arr;
}

console.log(where([{ first: "Romeo", last: "Montague" }, { first: "Mercutio", last: null }, { first: "Tybalt", last: "Capulet" }], { last: "Capulet" }));