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