From 028ecf556114fb3c6ab1c625f346a748a1f0c60f Mon Sep 17 00:00:00 2001 From: jdalton Date: Thu, 11 Jun 2015 08:30:18 -0700 Subject: [PATCH] Allow `_.modArgs` to accept an array of transforms. --- lodash.src.js | 4 +++- test/test.js | 5 +++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/lodash.src.js b/lodash.src.js index 2011db9da..313aa52dc 100644 --- a/lodash.src.js +++ b/lodash.src.js @@ -8036,7 +8036,8 @@ * @memberOf _ * @category Function * @param {Function} func The function to wrap. - * @param {...Function} [transforms] The function to transform the corresponding argument. + * @param {...(Function|Function[])} [transforms] The functions to transform + * arguments, specified as individual functions or arrays of functions. * @returns {Function} Returns the new function. * @example * @@ -8059,6 +8060,7 @@ * // => [25, 20] */ var modArgs = restParam(function(func, transforms) { + transforms = baseFlatten(transforms); if (typeof func != 'function' || !arrayEvery(transforms, baseIsFunction)) { throw new TypeError(FUNC_ERROR_TEXT); } diff --git a/test/test.js b/test/test.js index 27d7d56c6..83d23bb82 100644 --- a/test/test.js +++ b/test/test.js @@ -11306,6 +11306,11 @@ deepEqual(modded(5, 10), [10, 100]); }); + test('should flatten transforms', 1, function() { + var modded = _.modArgs(fn, [doubled, square]); + deepEqual(modded(5, 10), [10, 100]); + }); + test('should not transform any argument greater than the number of transforms', 1, function() { var modded = _.modArgs(fn, doubled, square); deepEqual(modded(5, 10, 18), [10, 100, 18]);