time-to-botec

Benchmark sampling in different programming languages
Log | Files | Refs | README

_createOver.js (780B)


      1 var apply = require('./_apply'),
      2     arrayMap = require('./_arrayMap'),
      3     baseIteratee = require('./_baseIteratee'),
      4     baseRest = require('./_baseRest'),
      5     baseUnary = require('./_baseUnary'),
      6     flatRest = require('./_flatRest');
      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  */
     15 function 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 
     27 module.exports = createOver;