00001 var arrayMap = require('./_arrayMap'), 00002 baseIntersection = require('./_baseIntersection'), 00003 baseIteratee = require('./_baseIteratee'), 00004 baseRest = require('./_baseRest'), 00005 castArrayLikeObject = require('./_castArrayLikeObject'), 00006 last = require('./last'); 00007 00031 var intersectionBy = baseRest(function(arrays) { 00032 var iteratee = last(arrays), 00033 mapped = arrayMap(arrays, castArrayLikeObject); 00034 00035 if (iteratee === last(mapped)) { 00036 iteratee = undefined; 00037 } else { 00038 mapped.pop(); 00039 } 00040 return (mapped.length && mapped[0] === arrays[0]) 00041 ? baseIntersection(mapped, baseIteratee(iteratee, 2)) 00042 : []; 00043 }); 00044 00045 module.exports = intersectionBy;