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.
		
		
		
		
		
			
		
			
				
					32 lines
				
				982 B
			
		
		
			
		
	
	
					32 lines
				
				982 B
			| 
											3 years ago
										 | var _isArrayLike = require('./_isArrayLike.js'); | ||
|  | var values = require('./values.js'); | ||
|  | var _cb = require('./_cb.js'); | ||
|  | var each = require('./each.js'); | ||
|  | 
 | ||
|  | // Return the maximum element (or element-based computation).
 | ||
|  | function max(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; | ||
|  | } | ||
|  | 
 | ||
|  | module.exports = max; |