00001 var baseFlatten = require('./_baseFlatten'), 00002 baseOrderBy = require('./_baseOrderBy'), 00003 baseRest = require('./_baseRest'), 00004 isIterateeCall = require('./_isIterateeCall'); 00005 00035 var sortBy = baseRest(function(collection, iteratees) { 00036 if (collection == null) { 00037 return []; 00038 } 00039 var length = iteratees.length; 00040 if (length > 1 && isIterateeCall(collection, iteratees[0], iteratees[1])) { 00041 iteratees = []; 00042 } else if (length > 2 && isIterateeCall(iteratees[0], iteratees[1], iteratees[2])) { 00043 iteratees = [iteratees[0]]; 00044 } 00045 return baseOrderBy(collection, baseFlatten(iteratees, 1), []); 00046 }); 00047 00048 module.exports = sortBy;