Spaces:
Runtime error
Runtime error
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; | |