UNPKG

778 BJavaScriptView Raw
1import apply from './_apply.js';
2import arrayMap from './_arrayMap.js';
3import baseIteratee from './_baseIteratee.js';
4import baseRest from './_baseRest.js';
5import baseUnary from './_baseUnary.js';
6import flatRest from './_flatRest.js';
7
8/**
9 * Creates a function like `_.over`.
10 *
11 * @private
12 * @param {Function} arrayFunc The function to iterate over iteratees.
13 * @returns {Function} Returns the new over function.
14 */
15function createOver(arrayFunc) {
16 return flatRest(function(iteratees) {
17 iteratees = arrayMap(iteratees, baseUnary(baseIteratee));
18 return baseRest(function(args) {
19 var thisArg = this;
20 return arrayFunc(iteratees, function(iteratee) {
21 return apply(iteratee, thisArg, args);
22 });
23 });
24 });
25}
26
27export default createOver;