Bump to v3.8.0.

This commit is contained in:
jdalton
2015-04-29 21:07:42 -07:00
parent 5eb8db31d7
commit d7b2bedafc
58 changed files with 300 additions and 194 deletions

36
array/zipWith.js Normal file
View File

@@ -0,0 +1,36 @@
import restParam from '../function/restParam';
import unzipWith from './unzipWith';
/**
* This method is like `_.zip` except that it accepts an iteratee to specify
* how grouped values should be combined. The `iteratee` is bound to `thisArg`
* and invoked with four arguments: (accumulator, value, index, group).
*
* @static
* @memberOf _
* @category Array
* @param {...Array} [arrays] The arrays to process.
* @param {Function} [iteratee] The function to combine grouped values.
* @param {*} [thisArg] The `this` binding of `iteratee`.
* @returns {Array} Returns the new array of grouped elements.
* @example
*
* _.zipWith([1, 2], [10, 20], [100, 200], _.add);
* // => [111, 222]
*/
var zipWith = restParam(function(arrays) {
var length = arrays.length,
iteratee = arrays[length - 2],
thisArg = arrays[length - 1];
if (length > 2 && typeof iteratee == 'function') {
length -= 2;
} else {
iteratee = (length > 1 && typeof thisArg == 'function') ? (--length, thisArg) : undefined;
thisArg = undefined;
}
arrays.length = length;
return unzipWith(arrays, iteratee, thisArg);
});
export default zipWith;