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.
		
		
		
		
		
			
		
			
				
					39 lines
				
				1.1 KiB
			
		
		
			
		
	
	
					39 lines
				
				1.1 KiB
			| 
											3 years ago
										 | var baseToNumber = require('./_baseToNumber'), | ||
|  |     baseToString = require('./_baseToString'); | ||
|  | 
 | ||
|  | /** | ||
|  |  * Creates a function that performs a mathematical operation on two values. | ||
|  |  * | ||
|  |  * @private | ||
|  |  * @param {Function} operator The function to perform the operation. | ||
|  |  * @param {number} [defaultValue] The value used for `undefined` arguments. | ||
|  |  * @returns {Function} Returns the new mathematical operation function. | ||
|  |  */ | ||
|  | function createMathOperation(operator, defaultValue) { | ||
|  |   return function(value, other) { | ||
|  |     var result; | ||
|  |     if (value === undefined && other === undefined) { | ||
|  |       return defaultValue; | ||
|  |     } | ||
|  |     if (value !== undefined) { | ||
|  |       result = value; | ||
|  |     } | ||
|  |     if (other !== undefined) { | ||
|  |       if (result === undefined) { | ||
|  |         return other; | ||
|  |       } | ||
|  |       if (typeof value == 'string' || typeof other == 'string') { | ||
|  |         value = baseToString(value); | ||
|  |         other = baseToString(other); | ||
|  |       } else { | ||
|  |         value = baseToNumber(value); | ||
|  |         other = baseToNumber(other); | ||
|  |       } | ||
|  |       result = operator(value, other); | ||
|  |     } | ||
|  |     return result; | ||
|  |   }; | ||
|  | } | ||
|  | 
 | ||
|  | module.exports = createMathOperation; |