import cb from './_cb.js';
|
import getLength from './_getLength.js';
|
|
// 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.
|
export default 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;
|
}
|