1 | /**
|
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 | */
|
12 | function 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 |
|
23 | module.exports = baseFindKey;
|