| 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;
 
 
  |