function invoke(collection, methodName) {
      return baseInvoke(collection, methodName, slice(arguments, 2));
    }
Invokes the method named by `methodName` on each element in the collection,
returning an array of the results of each invoked method. Any additional
arguments are provided to each invoked method. If `methodName` is a function
it is invoked for, and `this` bound to, each element in the collection.

@static
@memberOf _
@category Collection
@param {Array|Object|string} collection The collection to iterate over.
@param {Function|string} methodName The name of the method to invoke or
 the function invoked per iteration.
@param {...*} [args] The arguments to invoke the method with.
@returns {Array} Returns the array of results.
@example

_.invoke([[5, 1, 7], [3, 2, 1]], 'sort');
// => [[1, 5, 7], [1, 2, 3]]

_.invoke([123, 456], String.prototype.split, '');
// => [['1', '2', '3'], ['4', '5', '6']]