1 var createFindIndex = require('../internal/createFindIndex');
4 * This method is like `_.find` except that it returns the index of the first
5 * element `predicate` returns truthy for instead of the element itself.
7 * If a property name is provided for `predicate` the created `_.property`
8 * style callback returns the property value of the given element.
10 * If a value is also provided for `thisArg` the created `_.matchesProperty`
11 * style callback returns `true` for elements that have a matching property
12 * value, else `false`.
14 * If an object is provided for `predicate` the created `_.matches` style
15 * callback returns `true` for elements that have the properties of the given
16 * object, else `false`.
21 * @param {Array} array The array to search.
22 * @param {Function|Object|string} [predicate=_.identity] The function invoked
24 * @param {*} [thisArg] The `this` binding of `predicate`.
25 * @returns {number} Returns the index of the found element, else `-1`.
29 * { 'user': 'barney', 'active': false },
30 * { 'user': 'fred', 'active': false },
31 * { 'user': 'pebbles', 'active': true }
34 * _.findIndex(users, function(chr) {
35 * return chr.user == 'barney';
39 * // using the `_.matches` callback shorthand
40 * _.findIndex(users, { 'user': 'fred', 'active': false });
43 * // using the `_.matchesProperty` callback shorthand
44 * _.findIndex(users, 'active', false);
47 * // using the `_.property` callback shorthand
48 * _.findIndex(users, 'active');
51 var findIndex = createFindIndex();
53 module.exports = findIndex;