Binary searches value in sorted array.
Alternatives: bsearch, bsearchRight, bsearchAny, bsearchClosest.
This is part of package extra-array.
array.bsearchAny(x, v, [fc], [fm]);
// x: an array (sorted)
// v: search value
// fc: compare function (a, b)
// fm: map function (v, i, x)
// --> index of value | ~(index of closest value)
const array = require('extra-array');
var x = [1, 3, 3, 3, 5];
array.bsearchAny(x, 3);
// 2 ^ found
array.bsearchAny(x, 4);
// -5 (~4) ^ not found, closest
var x = [1, -3, -3, -3, 5];
array.bsearchAny(x, 3, (a, b) => Math.abs(a) - Math.abs(b));
// 2 ^
array.bsearchAny(x, 3, null, v => Math.abs(v));
// 2 ^