Edit in JSFiddle

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"]