/** * @license * Based off baseSortedIndex function in Lodash * Copyright JS Foundation and other contributors * Released under MIT license * Based on Underscore.js 1.8.3 * Copyright Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors */ export default function sortedIndex(array, value, comparator) { let low = 0; let high = array.length; while (low < high) { let mid = (low + high) >>> 1; let cmpResult = comparator(value, array[mid]); if (cmpResult > 0) { low = mid + 1; } else if (cmpResult < 0) { high = mid; } else { low = high = mid; } } return high; }