00001 var arrayMap = require('./_arrayMap'), 00002 baseIntersection = require('./_baseIntersection'), 00003 baseRest = require('./_baseRest'), 00004 castArrayLikeObject = require('./_castArrayLikeObject'), 00005 last = require('./last'); 00006 00028 var intersectionWith = baseRest(function(arrays) { 00029 var comparator = last(arrays), 00030 mapped = arrayMap(arrays, castArrayLikeObject); 00031 00032 comparator = typeof comparator == 'function' ? comparator : undefined; 00033 if (comparator) { 00034 mapped.pop(); 00035 } 00036 return (mapped.length && mapped[0] === arrays[0]) 00037 ? baseIntersection(mapped, undefined, comparator) 00038 : []; 00039 }); 00040 00041 module.exports = intersectionWith;