Change arguments passed to _.zipWith and _.unzipWith.

This commit is contained in:
John-David Dalton
2016-01-06 23:26:02 -08:00
parent 52754415e0
commit 81b1d6e451
2 changed files with 25 additions and 8 deletions

View File

@@ -6790,7 +6790,7 @@
return result; return result;
} }
return arrayMap(result, function(group) { return arrayMap(result, function(group) {
return arrayReduce(group, iteratee, undefined, true); return apply(iteratee, undefined, group);
}); });
} }
@@ -6947,7 +6947,9 @@
* @returns {Array} Returns the new array of grouped elements. * @returns {Array} Returns the new array of grouped elements.
* @example * @example
* *
* _.zipWith([1, 2], [10, 20], [100, 200], _.add); * _.zipWith([1, 2], [10, 20], [100, 200], function(a, b, c) {
* return a + b + c;
* });
* // => [111, 222] * // => [111, 222]
*/ */
var zipWith = rest(function(arrays) { var zipWith = rest(function(arrays) {

View File

@@ -21839,7 +21839,12 @@
assert.expect(1); assert.expect(1);
var array = [[1, 4], [2, 5], [3, 6]]; var array = [[1, 4], [2, 5], [3, 6]];
assert.deepEqual(_.unzipWith(array, _.add), [6, 15]);
var actual = _.unzipWith(array, function(a, b, c) {
return a + b + c;
});
assert.deepEqual(actual, [6, 15]);
}); });
QUnit.test('should provide the correct `iteratee` arguments', function(assert) { QUnit.test('should provide the correct `iteratee` arguments', function(assert) {
@@ -21851,7 +21856,7 @@
args || (args = slice.call(arguments)); args || (args = slice.call(arguments));
}); });
assert.deepEqual(args, [1, 2, 1, [1, 2]]); assert.deepEqual(args, [1, 2]);
}); });
QUnit.test('should perform a basic unzip when `iteratee` is nullish', function(assert) { QUnit.test('should perform a basic unzip when `iteratee` is nullish', function(assert) {
@@ -22218,10 +22223,20 @@
assert.expect(2); assert.expect(2);
var array1 = [1, 2, 3], var array1 = [1, 2, 3],
array2 = [4, 5, 6]; array2 = [4, 5, 6],
array3 = [7, 8, 9];
assert.deepEqual(_.zipWith(array1, array2, _.add), [5, 7, 9]); var actual = _.zipWith(array1, array2, array3, function(a, b, c) {
assert.deepEqual(_.zipWith(array1, [], _.add), [1, 2, 3]); return a + b + c;
});
assert.deepEqual(actual, [12, 15, 18]);
var actual = _.zipWith(array1, [], function(a, b) {
return a + (b || 0);
});
assert.deepEqual(actual, [1, 2, 3]);
}); });
QUnit.test('should provide the correct `iteratee` arguments', function(assert) { QUnit.test('should provide the correct `iteratee` arguments', function(assert) {
@@ -22233,7 +22248,7 @@
args || (args = slice.call(arguments)); args || (args = slice.call(arguments));
}); });
assert.deepEqual(args, [1, 3, 1, [1, 3, 5]]); assert.deepEqual(args, [1, 3, 5]);
}); });
QUnit.test('should perform a basic zip when `iteratee` is nullish', function(assert) { QUnit.test('should perform a basic zip when `iteratee` is nullish', function(assert) {