time-to-botec

Benchmark sampling in different programming languages
Log | Files | Refs | README

reject.js (1417B)


      1 var arrayFilter = require('./_arrayFilter'),
      2     baseFilter = require('./_baseFilter'),
      3     baseIteratee = require('./_baseIteratee'),
      4     isArray = require('./isArray'),
      5     negate = require('./negate');
      6 
      7 /**
      8  * The opposite of `_.filter`; this method returns the elements of `collection`
      9  * that `predicate` does **not** return truthy for.
     10  *
     11  * @static
     12  * @memberOf _
     13  * @since 0.1.0
     14  * @category Collection
     15  * @param {Array|Object} collection The collection to iterate over.
     16  * @param {Function} [predicate=_.identity] The function invoked per iteration.
     17  * @returns {Array} Returns the new filtered array.
     18  * @see _.filter
     19  * @example
     20  *
     21  * var users = [
     22  *   { 'user': 'barney', 'age': 36, 'active': false },
     23  *   { 'user': 'fred',   'age': 40, 'active': true }
     24  * ];
     25  *
     26  * _.reject(users, function(o) { return !o.active; });
     27  * // => objects for ['fred']
     28  *
     29  * // The `_.matches` iteratee shorthand.
     30  * _.reject(users, { 'age': 40, 'active': true });
     31  * // => objects for ['barney']
     32  *
     33  * // The `_.matchesProperty` iteratee shorthand.
     34  * _.reject(users, ['active', false]);
     35  * // => objects for ['fred']
     36  *
     37  * // The `_.property` iteratee shorthand.
     38  * _.reject(users, 'active');
     39  * // => objects for ['barney']
     40  */
     41 function reject(collection, predicate) {
     42   var func = isArray(collection) ? arrayFilter : baseFilter;
     43   return func(collection, negate(baseIteratee(predicate, 3)));
     44 }
     45 
     46 module.exports = reject;