UNPKG

882 BJavaScriptView Raw
1"use strict";
2Object.defineProperty(exports, "__esModule", { value: true });
3exports.bisect = void 0;
4/**
5 * 在一个升序的序列指定范围内 array[lo, hi) 二分查找一个值 x,返回最右边一个匹配的值后面的索引 i
6 * https://github.com/d3/d3-array/blob/master/src/bisector.js
7 * @param array 升序的目标数组
8 * @param x 查找的值
9 * @param lo 开始的索引
10 * @param hi 结束的索引
11 * @returns 最右边一个匹配的值后一个的索引
12 */
13function bisect(array, x, lo, hi, getter) {
14 let i = lo || 0;
15 let j = hi || array.length;
16 const get = getter || ((x) => x);
17 while (i < j) {
18 const mid = Math.floor((i + j) / 2);
19 if (get(array[mid]) > x) {
20 j = mid;
21 }
22 else {
23 i = mid + 1;
24 }
25 }
26 return i;
27}
28exports.bisect = bisect;
29//# sourceMappingURL=bisect.js.map
\No newline at end of file