UNPKG

@extra-array/bsearch-any

Version:

Binary searches value in sorted array.

50 lines (39 loc) 1.77 kB
Binary searches value in [sorted] array. [:running:] [:vhs:] [:package:] [:moon:] [:ledger:] > Alternatives: [bsearch], [bsearchRight], [bsearchAny], [bsearchClosest].<br> > This is part of package [extra-array]. [extra-array]: https://www.npmjs.com/package/extra-array ```javascript 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) ``` ```javascript 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 ^ ``` ### references - [array-binsearch: @krisselden](https://www.npmjs.com/package/array-binsearch) - [binarysearch: @soldair](https://www.npmjs.com/package/binarysearch) - [binary-search: @darkskyapp](https://www.npmjs.com/package/binary-search) [sorted]: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort [:running:]: https://npm.runkit.com/@extra-array/bsearch-any [:package:]: https://www.npmjs.com/package/@extra-array/bsearch-any [:moon:]: https://www.npmjs.com/package/@extra-array/bsearch-any.min [:ledger:]: https://unpkg.com/@extra-array/bsearch-any/ [bsearch]: https://github.com/nodef/extra-array/wiki/bsearch [bsearchRight]: https://github.com/nodef/extra-array/wiki/bsearchRight [bsearchAny]: https://github.com/nodef/extra-array/wiki/bsearchAny [bsearchClosest]: https://github.com/nodef/extra-array/wiki/bsearchClosest [:vhs:]: https://asciinema.org/a/332021