code: function reject(collection, predicate, thisArg) {
        predicate = lodash.createCallback(predicate, thisArg, 3);
        return filter(collection, negate(predicate));
      }
docs: The opposite of `_.filter`; this method returns the elements of a collection
  the predicate does **not** return truthy for.
  
  If a property name is provided for `predicate` the created "_.pluck" style
  callback will return the property value of the given element.
  
  If an object is provided for `predicate` the created "_.where" style callback
  will return `true` for elements that have the properties of the given object,
  else `false`.
  
  @static
  @memberOf _
  @category Collections
  @param {Array|Object|string} collection The collection to iterate over.
  @param {Function|Object|string} [predicate=identity] The function called
  per iteration. If a property name or object is provided it will be used
  to create a "_.pluck" or "_.where" style callback respectively.
  @param {*} [thisArg] The `this` binding of `predicate`.
  @returns {Array} Returns the new filtered array.
  @example
  
  var odds = _.reject([1, 2, 3, 4], function(num) { return num % 2 == 0; });
  // => [1, 3]
  
  var characters = [
  { 'name': 'barney', 'age': 36 },
  { 'name': 'fred',   'age': 40, 'blocked': true }
  ];
  
  // using "_.pluck" callback shorthand
  _.reject(characters, 'blocked');
  // => [{ 'name': 'barney', 'age': 36 }]
  
  // using "_.where" callback shorthand
  _.reject(characters, { 'age': 36 });
  // => [{ 'name': 'fred', 'age': 40, 'blocked': true }]