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.
		
		
		
		
		
			
		
			
				
					
					
						
							26 lines
						
					
					
						
							853 B
						
					
					
				
			
		
		
	
	
							26 lines
						
					
					
						
							853 B
						
					
					
				| var baseIteratee = require('./_baseIteratee'),
 | |
|     isArrayLike = require('./isArrayLike'),
 | |
|     keys = require('./keys');
 | |
| 
 | |
| /**
 | |
|  * Creates a `_.find` or `_.findLast` function.
 | |
|  *
 | |
|  * @private
 | |
|  * @param {Function} findIndexFunc The function to find the collection index.
 | |
|  * @returns {Function} Returns the new find function.
 | |
|  */
 | |
| function createFind(findIndexFunc) {
 | |
|   return function(collection, predicate, fromIndex) {
 | |
|     var iterable = Object(collection);
 | |
|     if (!isArrayLike(collection)) {
 | |
|       var iteratee = baseIteratee(predicate, 3);
 | |
|       collection = keys(collection);
 | |
|       predicate = function(key) { return iteratee(iterable[key], key, iterable); };
 | |
|     }
 | |
|     var index = findIndexFunc(collection, predicate, fromIndex);
 | |
|     return index > -1 ? iterable[iteratee ? collection[index] : index] : undefined;
 | |
|   };
 | |
| }
 | |
| 
 | |
| module.exports = createFind;
 |