You can not select more than 25 topics
			Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
		
		
		
		
		
			
		
			
				
					33 lines
				
				897 B
			
		
		
			
		
	
	
					33 lines
				
				897 B
			| 
											3 years ago
										 | var isSymbol = require('./isSymbol'); | ||
|  | 
 | ||
|  | /** | ||
|  |  * The base implementation of methods like `_.max` and `_.min` which accepts a | ||
|  |  * `comparator` to determine the extremum value. | ||
|  |  * | ||
|  |  * @private | ||
|  |  * @param {Array} array The array to iterate over. | ||
|  |  * @param {Function} iteratee The iteratee invoked per iteration. | ||
|  |  * @param {Function} comparator The comparator used to compare values. | ||
|  |  * @returns {*} Returns the extremum value. | ||
|  |  */ | ||
|  | function baseExtremum(array, iteratee, comparator) { | ||
|  |   var index = -1, | ||
|  |       length = array.length; | ||
|  | 
 | ||
|  |   while (++index < length) { | ||
|  |     var value = array[index], | ||
|  |         current = iteratee(value); | ||
|  | 
 | ||
|  |     if (current != null && (computed === undefined | ||
|  |           ? (current === current && !isSymbol(current)) | ||
|  |           : comparator(current, computed) | ||
|  |         )) { | ||
|  |       var computed = current, | ||
|  |           result = value; | ||
|  |     } | ||
|  |   } | ||
|  |   return result; | ||
|  | } | ||
|  | 
 | ||
|  | module.exports = baseExtremum; |