31 lines
		
	
	
		
			789 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			31 lines
		
	
	
		
			789 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | var baseToPairs = require('./_baseToPairs'), | ||
|  |     getTag = require('./_getTag'), | ||
|  |     mapToArray = require('./_mapToArray'), | ||
|  |     setToPairs = require('./_setToPairs'); | ||
|  | 
 | ||
|  | /** `Object#toString` result references. */ | ||
|  | var mapTag = '[object Map]', | ||
|  |     setTag = '[object Set]'; | ||
|  | 
 | ||
|  | /** | ||
|  |  * Creates a `_.toPairs` or `_.toPairsIn` function. | ||
|  |  * | ||
|  |  * @private | ||
|  |  * @param {Function} keysFunc The function to get the keys of a given object. | ||
|  |  * @returns {Function} Returns the new pairs function. | ||
|  |  */ | ||
|  | function createToPairs(keysFunc) { | ||
|  |   return function(object) { | ||
|  |     var tag = getTag(object); | ||
|  |     if (tag == mapTag) { | ||
|  |       return mapToArray(object); | ||
|  |     } | ||
|  |     if (tag == setTag) { | ||
|  |       return setToPairs(object); | ||
|  |     } | ||
|  |     return baseToPairs(object, keysFunc(object)); | ||
|  |   }; | ||
|  | } | ||
|  | 
 | ||
|  | module.exports = createToPairs; |