mirror of
https://github.com/whoisclebs/lodash.git
synced 2026-02-13 12:27:49 +00:00
Add _.cond.
This commit is contained in:
34
lodash.js
34
lodash.js
@@ -12820,6 +12820,39 @@
|
|||||||
return object;
|
return object;
|
||||||
});
|
});
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Creates a function that iterates over `pairs` invoking the corresponding
|
||||||
|
* function of the first predicate to return truthy. The predicate-function
|
||||||
|
* pairs are invoked with the `this` binding and arguments of the created
|
||||||
|
* function.
|
||||||
|
*
|
||||||
|
* @static
|
||||||
|
* @memberOf _
|
||||||
|
* @category Utility
|
||||||
|
* @param {Array} pairs The predicate-function pairs.
|
||||||
|
* @returns {Function} Returns the new function.
|
||||||
|
* @example
|
||||||
|
*/
|
||||||
|
function cond(pairs) {
|
||||||
|
var length = pairs ? pairs.length : 0,
|
||||||
|
index = length;
|
||||||
|
|
||||||
|
while (index--) {
|
||||||
|
if (typeof pairs[index][0] != 'function' || typeof pairs[index][1] != 'function') {
|
||||||
|
throw new TypeError(FUNC_ERROR_TEXT);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return rest(function(args) {
|
||||||
|
var index = -1;
|
||||||
|
while (++index < length) {
|
||||||
|
var pair = pairs[index];
|
||||||
|
if (apply(pair[0], this, args)) {
|
||||||
|
return apply(pair[1], this, args);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Creates a function that invokes the predicate properties of `source` with
|
* Creates a function that invokes the predicate properties of `source` with
|
||||||
* the corresponding property values of a given object, returning `true` if
|
* the corresponding property values of a given object, returning `true` if
|
||||||
@@ -13838,6 +13871,7 @@
|
|||||||
lodash.chunk = chunk;
|
lodash.chunk = chunk;
|
||||||
lodash.compact = compact;
|
lodash.compact = compact;
|
||||||
lodash.concat = concat;
|
lodash.concat = concat;
|
||||||
|
lodash.cond = cond;
|
||||||
lodash.conforms = conforms;
|
lodash.conforms = conforms;
|
||||||
lodash.constant = constant;
|
lodash.constant = constant;
|
||||||
lodash.countBy = countBy;
|
lodash.countBy = countBy;
|
||||||
|
|||||||
@@ -22950,7 +22950,7 @@
|
|||||||
var acceptFalsey = lodashStable.difference(allMethods, rejectFalsey);
|
var acceptFalsey = lodashStable.difference(allMethods, rejectFalsey);
|
||||||
|
|
||||||
QUnit.test('should accept falsey arguments', function(assert) {
|
QUnit.test('should accept falsey arguments', function(assert) {
|
||||||
assert.expect(285);
|
assert.expect(286);
|
||||||
|
|
||||||
var emptyArrays = lodashStable.map(falsey, lodashStable.constant([]));
|
var emptyArrays = lodashStable.map(falsey, lodashStable.constant([]));
|
||||||
|
|
||||||
@@ -23021,7 +23021,7 @@
|
|||||||
func = _[methodName];
|
func = _[methodName];
|
||||||
|
|
||||||
var actual = lodashStable.map(falsey, function(value, index) {
|
var actual = lodashStable.map(falsey, function(value, index) {
|
||||||
var pass = !index && /^(?:backflow|compose|flow(Right)?|over(?:Every|Some)?)$/.test(methodName);
|
var pass = !index && /^(?:backflow|compose|cond|flow(Right)?|over(?:Every|Some)?)$/.test(methodName);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
index ? func(value) : func();
|
index ? func(value) : func();
|
||||||
|
|||||||
Reference in New Issue
Block a user