00001 var apply = require('./_apply'), 00002 baseEach = require('./_baseEach'), 00003 baseInvoke = require('./_baseInvoke'), 00004 baseRest = require('./_baseRest'), 00005 isArrayLike = require('./isArrayLike'); 00006 00030 var invokeMap = baseRest(function(collection, path, args) { 00031 var index = -1, 00032 isFunc = typeof path == 'function', 00033 result = isArrayLike(collection) ? Array(collection.length) : []; 00034 00035 baseEach(collection, function(value) { 00036 result[++index] = isFunc ? apply(path, value, args) : baseInvoke(value, path, args); 00037 }); 00038 return result; 00039 }); 00040 00041 module.exports = invokeMap;