| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 | 
							- var SetCache = require('./_SetCache'),
 
-     arrayIncludes = require('./_arrayIncludes'),
 
-     arrayIncludesWith = require('./_arrayIncludesWith'),
 
-     arrayMap = require('./_arrayMap'),
 
-     baseUnary = require('./_baseUnary'),
 
-     cacheHas = require('./_cacheHas');
 
- /* Built-in method references for those with the same name as other `lodash` methods. */
 
- var nativeMin = Math.min;
 
- /**
 
-  * The base implementation of methods like `_.intersection`, without support
 
-  * for iteratee shorthands, that accepts an array of arrays to inspect.
 
-  *
 
-  * @private
 
-  * @param {Array} arrays The arrays to inspect.
 
-  * @param {Function} [iteratee] The iteratee invoked per element.
 
-  * @param {Function} [comparator] The comparator invoked per element.
 
-  * @returns {Array} Returns the new array of shared values.
 
-  */
 
- function baseIntersection(arrays, iteratee, comparator) {
 
-   var includes = comparator ? arrayIncludesWith : arrayIncludes,
 
-       length = arrays[0].length,
 
-       othLength = arrays.length,
 
-       othIndex = othLength,
 
-       caches = Array(othLength),
 
-       maxLength = Infinity,
 
-       result = [];
 
-   while (othIndex--) {
 
-     var array = arrays[othIndex];
 
-     if (othIndex && iteratee) {
 
-       array = arrayMap(array, baseUnary(iteratee));
 
-     }
 
-     maxLength = nativeMin(array.length, maxLength);
 
-     caches[othIndex] = !comparator && (iteratee || (length >= 120 && array.length >= 120))
 
-       ? new SetCache(othIndex && array)
 
-       : undefined;
 
-   }
 
-   array = arrays[0];
 
-   var index = -1,
 
-       seen = caches[0];
 
-   outer:
 
-   while (++index < length && result.length < maxLength) {
 
-     var value = array[index],
 
-         computed = iteratee ? iteratee(value) : value;
 
-     value = (comparator || value !== 0) ? value : 0;
 
-     if (!(seen
 
-           ? cacheHas(seen, computed)
 
-           : includes(result, computed, comparator)
 
-         )) {
 
-       othIndex = othLength;
 
-       while (--othIndex) {
 
-         var cache = caches[othIndex];
 
-         if (!(cache
 
-               ? cacheHas(cache, computed)
 
-               : includes(arrays[othIndex], computed, comparator))
 
-             ) {
 
-           continue outer;
 
-         }
 
-       }
 
-       if (seen) {
 
-         seen.push(computed);
 
-       }
 
-       result.push(value);
 
-     }
 
-   }
 
-   return result;
 
- }
 
- module.exports = baseIntersection;
 
 
  |