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]);