1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| define(['./_cb', './_getLength'], function (_cb, _getLength) {
|
| // Use a comparator function to figure out the smallest index at which
| // an object should be inserted so as to maintain order. Uses binary search.
| function sortedIndex(array, obj, iteratee, context) {
| iteratee = _cb(iteratee, context, 1);
| var value = iteratee(obj);
| var low = 0, high = _getLength(array);
| while (low < high) {
| var mid = Math.floor((low + high) / 2);
| if (iteratee(array[mid]) < value) low = mid + 1; else high = mid;
| }
| return low;
| }
|
| return sortedIndex;
|
| });
|
|