@antv/f2
Version:
Charts for mobile visualization.
31 lines (30 loc) • 648 B
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = _default;
var _util = require("@antv/util");
/**
* 二分右侧查找
* https://github.com/d3/d3-array/blob/master/src/bisector.js
*/
function _default(getter) {
/**
* x: 目标值
* lo: 起始位置
* hi: 结束位置
*/
return function (a, x, _lo, _hi) {
var lo = (0, _util.isNil)(_lo) ? 0 : _lo;
var hi = (0, _util.isNil)(_hi) ? a.length : _hi;
while (lo < hi) {
var mid = lo + hi >>> 1;
if (getter(a[mid]) > x) {
hi = mid;
} else {
lo = mid + 1;
}
}
return lo;
};
}
;