@extra-array/binary-search.closest

Get index of closest value in sorted array.

Usage no npm install needed!

<script type="module">
  import extraArrayBinarySearchClosest from 'https://cdn.skypack.dev/@extra-array/binary-search.closest';
</script>

README

Get index of closest value in sorted array.

Use binarySearch, if index of value is needed.

const binarySearch = require('@extra-array/binary-search.closest');
// binarySearch(<array>, <value>, [compare function], [this], [begin=0], [end])
// -> <index of closest value>

binarySearch([21, 42, 91, 91], 40);
// 1
binarySearch([21, 42, 91, 91], 42, null, null, 2);
// 2
binarySearch([21, 42, 91, 91], 92, null, null, 2, 4);
// 4

binarySearch([21, 42, 91, 91], 40, (a, b) => a===b? 0:(a<b? -1:1));
// 1
binarySearch(['G', 'KG', 'KG', 'MG'], 'g', (a, b, i) => a.toLowerCase().localeCompare(b.toLowerCase()), null, 1);
// 1
binarySearch(['G', 'KG', 'KG', 'MG'], 'KG', (a, b, i, arr) => a.localeCompare(b), null, 1, 4);
// 2

With extra-array try Array.binarySearch.closest() instead.

extra-array