zipWith.js (960B)
1 var baseRest = require('./_baseRest'), 2 unzipWith = require('./unzipWith'); 3 4 /** 5 * This method is like `_.zip` except that it accepts `iteratee` to specify 6 * how grouped values should be combined. The iteratee is invoked with the 7 * elements of each group: (...group). 8 * 9 * @static 10 * @memberOf _ 11 * @since 3.8.0 12 * @category Array 13 * @param {...Array} [arrays] The arrays to process. 14 * @param {Function} [iteratee=_.identity] The function to combine 15 * grouped values. 16 * @returns {Array} Returns the new array of grouped elements. 17 * @example 18 * 19 * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) { 20 * return a + b + c; 21 * }); 22 * // => [111, 222] 23 */ 24 var zipWith = baseRest(function(arrays) { 25 var length = arrays.length, 26 iteratee = length > 1 ? arrays[length - 1] : undefined; 27 28 iteratee = typeof iteratee == 'function' ? (arrays.pop(), iteratee) : undefined; 29 return unzipWith(arrays, iteratee); 30 }); 31 32 module.exports = zipWith;