| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960 | 
							- var apply = require('./_apply'),
 
-     arrayMap = require('./_arrayMap'),
 
-     baseIteratee = require('./_baseIteratee'),
 
-     baseRest = require('./_baseRest');
 
- /** Error message constants. */
 
- var FUNC_ERROR_TEXT = 'Expected a function';
 
- /**
 
-  * Creates a function that iterates over `pairs` and invokes 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 _
 
-  * @since 4.0.0
 
-  * @category Util
 
-  * @param {Array} pairs The predicate-function pairs.
 
-  * @returns {Function} Returns the new composite function.
 
-  * @example
 
-  *
 
-  * var func = _.cond([
 
-  *   [_.matches({ 'a': 1 }),           _.constant('matches A')],
 
-  *   [_.conforms({ 'b': _.isNumber }), _.constant('matches B')],
 
-  *   [_.stubTrue,                      _.constant('no match')]
 
-  * ]);
 
-  *
 
-  * func({ 'a': 1, 'b': 2 });
 
-  * // => 'matches A'
 
-  *
 
-  * func({ 'a': 0, 'b': 1 });
 
-  * // => 'matches B'
 
-  *
 
-  * func({ 'a': '1', 'b': '2' });
 
-  * // => 'no match'
 
-  */
 
- function cond(pairs) {
 
-   var length = pairs == null ? 0 : pairs.length,
 
-       toIteratee = baseIteratee;
 
-   pairs = !length ? [] : arrayMap(pairs, function(pair) {
 
-     if (typeof pair[1] != 'function') {
 
-       throw new TypeError(FUNC_ERROR_TEXT);
 
-     }
 
-     return [toIteratee(pair[0]), pair[1]];
 
-   });
 
-   return baseRest(function(args) {
 
-     var index = -1;
 
-     while (++index < length) {
 
-       var pair = pairs[index];
 
-       if (apply(pair[0], this, args)) {
 
-         return apply(pair[1], this, args);
 
-       }
 
-     }
 
-   });
 
- }
 
- module.exports = cond;
 
 
  |