1 | var baseSortedIndex = require('./_baseSortedIndex'),
|
2 | eq = require('./eq');
|
3 |
|
4 | /**
|
5 | * This method is like `_.lastIndexOf` except that it performs a binary
|
6 | * search on a sorted `array`.
|
7 | *
|
8 | * @static
|
9 | * @memberOf _
|
10 | * @since 4.0.0
|
11 | * @category Array
|
12 | * @param {Array} array The array to inspect.
|
13 | * @param {*} value The value to search for.
|
14 | * @returns {number} Returns the index of the matched value, else `-1`.
|
15 | * @example
|
16 | *
|
17 | * _.sortedLastIndexOf([4, 5, 5, 5, 6], 5);
|
18 | * // => 3
|
19 | */
|
20 | function sortedLastIndexOf(array, value) {
|
21 | var length = array == null ? 0 : array.length;
|
22 | if (length) {
|
23 | var index = baseSortedIndex(array, value, true) - 1;
|
24 | if (eq(array[index], value)) {
|
25 | return index;
|
26 | }
|
27 | }
|
28 | return -1;
|
29 | }
|
30 |
|
31 | module.exports = sortedLastIndexOf;
|