| var baseRest = require('./_baseRest'), |
| unzipWith = require('./unzipWith'); |
| |
| /** |
| * This method is like `_.zip` except that it accepts `iteratee` to specify |
| * how grouped 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} [arrays] The arrays to process. |
| * @param {Function} [iteratee=_.identity] The function to combine |
| * grouped values. |
| * @returns {Array} Returns the new array of grouped elements. |
| * @example |
| * |
| * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) { |
| * return a + b + c; |
| * }); |
| * // => [111, 222] |
| */ |
| var zipWith = baseRest(function(arrays) { |
| var length = arrays.length, |
| iteratee = length > 1 ? arrays[length - 1] : undefined; |
| |
| iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined; |
| return unzipWith(arrays, iteratee); |
| }); |
| |
| module.exports = zipWith; |