blob: 2e430f3a215da77ab80782f8a11e97d0b17882cd [file] [log] [blame]
Leo Repp58b9f112021-11-22 11:57:47 +01001/**
2 * The base implementation of methods like `_.findKey` and `_.findLastKey`,
3 * without support for iteratee shorthands, which iterates over `collection`
4 * using `eachFunc`.
5 *
6 * @private
7 * @param {Array|Object} collection The collection to inspect.
8 * @param {Function} predicate The function invoked per iteration.
9 * @param {Function} eachFunc The function to iterate over `collection`.
10 * @returns {*} Returns the found element or its key, else `undefined`.
11 */
12function baseFindKey(collection, predicate, eachFunc) {
13 var result;
14 eachFunc(collection, function(value, key, collection) {
15 if (predicate(value, key, collection)) {
16 result = key;
17 return false;
18 }
19 });
20 return result;
21}
22
23module.exports = baseFindKey;