12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- var apply = require('./_apply'),
- arrayMap = require('./_arrayMap'),
- baseFlatten = require('./_baseFlatten'),
- baseIteratee = require('./_baseIteratee'),
- baseRest = require('./_baseRest'),
- baseUnary = require('./_baseUnary'),
- castRest = require('./_castRest'),
- isArray = require('./isArray');
- var nativeMin = Math.min;
- var overArgs = castRest(function(func, transforms) {
- transforms = (transforms.length == 1 && isArray(transforms[0]))
- ? arrayMap(transforms[0], baseUnary(baseIteratee))
- : arrayMap(baseFlatten(transforms, 1), baseUnary(baseIteratee));
- var funcsLength = transforms.length;
- return baseRest(function(args) {
- var index = -1,
- length = nativeMin(args.length, funcsLength);
- while (++index < length) {
- args[index] = transforms[index].call(this, args[index]);
- }
- return apply(func, this, args);
- });
- });
- module.exports = overArgs;
|