d3:bisector
by Richard Hunter
HTML
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/7.8.5/d3.min.js"></script>
JavaScript
const bisector = d3.bisector(x => x);
const arr = [3, 4, 5, 6, 8, 9];
console.log(bisector.right(arr, 5)); // 3
console.log(bisector.right(arr, 3)); // 1
console.log(bisector.right(arr, 9)); // 6
console.log(bisector.left(arr, 5)); // 2
console.log(bisector.left(arr, 3)); // 0
console.log(bisector.left(arr, 9)); // 5
console.log(d3.bisectRight(arr, 5)); // 3
console.log(d3.bisectRight(arr, 3)); // 1
console.log(d3.bisectRight(arr, 9)); // 6
console.log(d3.bisectLeft(arr, 5)); // 2
console.log(d3.bisectLeft(arr, 3)); // 0
console.log(d3.bisectLeft(arr, 9)); // 5