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
						
					
					
				| 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;
 | |
| }
 |