Sha256: ea889f0c332826661e8dde262a02d1149f6b8d9471dd68f7aa951087c8189eb9

Contents?: true

Size: 1.49 KB

Versions: 273

Compression:

Stored size: 1.49 KB

Contents

var baseDifference = require('./_baseDifference'),
    baseFlatten = require('./_baseFlatten'),
    baseIteratee = require('./_baseIteratee'),
    baseRest = require('./_baseRest'),
    isArrayLikeObject = require('./isArrayLikeObject'),
    last = require('./last');

/**
 * This method is like `_.difference` except that it accepts `iteratee` which
 * is invoked for each element of `array` and `values` to generate the criterion
 * by which they're compared. The order and references of result values are
 * determined by the first array. The iteratee is invoked with one argument:
 * (value).
 *
 * **Note:** Unlike `_.pullAllBy`, this method returns a new array.
 *
 * @static
 * @memberOf _
 * @since 4.0.0
 * @category Array
 * @param {Array} array The array to inspect.
 * @param {...Array} [values] The values to exclude.
 * @param {Function} [iteratee=_.identity] The iteratee invoked per element.
 * @returns {Array} Returns the new array of filtered values.
 * @example
 *
 * _.differenceBy([2.1, 1.2], [2.3, 3.4], Math.floor);
 * // => [1.2]
 *
 * // The `_.property` iteratee shorthand.
 * _.differenceBy([{ 'x': 2 }, { 'x': 1 }], [{ 'x': 1 }], 'x');
 * // => [{ 'x': 2 }]
 */
var differenceBy = baseRest(function(array, values) {
  var iteratee = last(values);
  if (isArrayLikeObject(iteratee)) {
    iteratee = undefined;
  }
  return isArrayLikeObject(array)
    ? baseDifference(array, baseFlatten(values, 1, isArrayLikeObject, true), baseIteratee(iteratee, 2))
    : [];
});

module.exports = differenceBy;

Version data entries

273 entries across 271 versions & 29 rubygems

Version Path
clapton-0.0.1 lib/clapton/javascripts/node_modules/lodash/differenceBy.js
immosquare-cleaner-0.1.47 node_modules/lodash/differenceBy.js
immosquare-cleaner-0.1.46 node_modules/lodash/differenceBy.js
immosquare-cleaner-0.1.45 node_modules/lodash/differenceBy.js
immosquare-cleaner-0.1.44 node_modules/lodash/differenceBy.js
boring_generators-0.14.0 tmp/templates/app_template/node_modules/lodash/differenceBy.js
immosquare-cleaner-0.1.43 node_modules/lodash/differenceBy.js
immosquare-cleaner-0.1.42 node_modules/lodash/differenceBy.js
immosquare-cleaner-0.1.41 node_modules/lodash/differenceBy.js
immosquare-cleaner-0.1.40 node_modules/lodash/differenceBy.js
sumomo-0.10.8 data/sumomo/api_modules/node_modules/lodash/differenceBy.js
immosquare-cleaner-0.1.39 node_modules/lodash/differenceBy.js
immosquare-cleaner-0.1.38 node_modules/lodash/differenceBy.js
optimacms-0.1.61 spec/dummy/node_modules/lodash/differenceBy.js
boring_generators-0.13.0 tmp/templates/app_template/node_modules/lodash/differenceBy.js
immosquare-cleaner-0.1.32 node_modules/lodash/differenceBy.js
immosquare-cleaner-0.1.31 node_modules/lodash/differenceBy.js
immosquare-cleaner-0.1.30 node_modules/lodash/differenceBy.js
immosquare-cleaner-0.1.29 node_modules/lodash/differenceBy.js
immosquare-cleaner-0.1.28 node_modules/lodash/differenceBy.js