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.
		
		
		
		
		
			
		
			
				
					30 lines
				
				954 B
			
		
		
			
		
	
	
					30 lines
				
				954 B
			| 
											3 years ago
										 | import isArrayLike from './_isArrayLike.js'; | ||
|  | import values from './values.js'; | ||
|  | import cb from './_cb.js'; | ||
|  | import each from './each.js'; | ||
|  | 
 | ||
|  | // Return the minimum element (or element-based computation).
 | ||
|  | export default function min(obj, iteratee, context) { | ||
|  |   var result = Infinity, lastComputed = Infinity, | ||
|  |       value, computed; | ||
|  |   if (iteratee == null || (typeof iteratee == 'number' && typeof obj[0] != 'object' && obj != null)) { | ||
|  |     obj = isArrayLike(obj) ? obj : values(obj); | ||
|  |     for (var i = 0, length = obj.length; i < length; i++) { | ||
|  |       value = obj[i]; | ||
|  |       if (value != null && value < result) { | ||
|  |         result = value; | ||
|  |       } | ||
|  |     } | ||
|  |   } else { | ||
|  |     iteratee = cb(iteratee, context); | ||
|  |     each(obj, function(v, index, list) { | ||
|  |       computed = iteratee(v, index, list); | ||
|  |       if (computed < lastComputed || (computed === Infinity && result === Infinity)) { | ||
|  |         result = v; | ||
|  |         lastComputed = computed; | ||
|  |       } | ||
|  |     }); | ||
|  |   } | ||
|  |   return result; | ||
|  | } |