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.
		
		
		
		
		
			
		
			
				
					
					
						
							25 lines
						
					
					
						
							853 B
						
					
					
				
			
		
		
	
	
							25 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;
 | 
						|
 |