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