diff options
Diffstat (limited to 'node_modules/lodash/unzipWith.js')
-rw-r--r-- | node_modules/lodash/unzipWith.js | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/node_modules/lodash/unzipWith.js b/node_modules/lodash/unzipWith.js new file mode 100644 index 0000000..926c899 --- /dev/null +++ b/node_modules/lodash/unzipWith.js @@ -0,0 +1,39 @@ +var apply = require('./_apply'), + arrayMap = require('./_arrayMap'), + unzip = require('./unzip'); + +/** + * This method is like `_.unzip` except that it accepts `iteratee` to specify + * how regrouped values should be combined. The iteratee is invoked with the + * elements of each group: (...group). + * + * @static + * @memberOf _ + * @since 3.8.0 + * @category Array + * @param {Array} array The array of grouped elements to process. + * @param {Function} [iteratee=_.identity] The function to combine + * regrouped values. + * @returns {Array} Returns the new array of regrouped elements. + * @example + * + * var zipped = _.zip([1, 2], [10, 20], [100, 200]); + * // => [[1, 10, 100], [2, 20, 200]] + * + * _.unzipWith(zipped, _.add); + * // => [3, 30, 300] + */ +function unzipWith(array, iteratee) { + if (!(array && array.length)) { + return []; + } + var result = unzip(array); + if (iteratee == null) { + return result; + } + return arrayMap(result, function(group) { + return apply(iteratee, undefined, group); + }); +} + +module.exports = unzipWith; |