| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 | var arrayMap = require('./_arrayMap'),    baseIndexOf = require('./_baseIndexOf'),    baseIndexOfWith = require('./_baseIndexOfWith'),    baseUnary = require('./_baseUnary'),    copyArray = require('./_copyArray');/** Used for built-in method references. */var arrayProto = Array.prototype;/** Built-in value references. */var splice = arrayProto.splice;/** * The base implementation of `_.pullAllBy` without support for iteratee * shorthands. * * @private * @param {Array} array The array to modify. * @param {Array} values The values to remove. * @param {Function} [iteratee] The iteratee invoked per element. * @param {Function} [comparator] The comparator invoked per element. * @returns {Array} Returns `array`. */function basePullAll(array, values, iteratee, comparator) {  var indexOf = comparator ? baseIndexOfWith : baseIndexOf,      index = -1,      length = values.length,      seen = array;  if (array === values) {    values = copyArray(values);  }  if (iteratee) {    seen = arrayMap(array, baseUnary(iteratee));  }  while (++index < length) {    var fromIndex = 0,        value = values[index],        computed = iteratee ? iteratee(value) : value;    while ((fromIndex = indexOf(seen, computed, fromIndex, comparator)) > -1) {      if (seen !== array) {        splice.call(seen, fromIndex, 1);      }      splice.call(array, fromIndex, 1);    }  }  return array;}module.exports = basePullAll;
 |