@extra-array/bsearchl

Binary searches leftmost value in sorted array.

Usage no npm install needed!

<script type="module">
  import extraArrayBsearchl from 'https://cdn.skypack.dev/@extra-array/bsearchl';
</script>

README

Binary searches leftmost value in sorted array.

Alternatives: default, closest, left, right.
This is part of package extra-array.

array.bsearchl(x, v, [fn]);
// x:  an array (sorted)
// v:  value to find
// fn: compare function (a, b)
// --> first index of value | ~(index of closest value)
const array = require('extra-array');

array.bsearchl([1, 3, 5, 7], 5);
// 2                  ^ found

array.bsearchl([1, 3, 5, 7], 4);
// -3 (~2)            ^ not found, closest

array.bsearchl([4, 4, 4, 4], 4);
// 0            ^ leftmost

array.bsearchl(['b', 'GB', 'KB', 'MB'], 'kB', (a, b) => {
  return a.toLowerCase().localeCompare(b.toLowerCase());
});
// 2                        ^ case insensitive

references