Add d3.bisectBy(comparator).
Fixes #1766. Unlike d3.bisector(accessor), this allows you to define a bisector that works in reverse order. An awkward aspect of implementing bisection on top of a comparator is that it is often the case that the sorted array contains objects (e.g., rows from a TSV), while the search value is a primitive value (e.g., a number). Thus, you want to apply an accessor to the array elements but not to the search value. The solution here is to invoke the comparator deterministically: the first argument is always an element from the array, and the second argument is always the search value. This lets a comparator apply an accessor to array elements but not to search values.
Showing
This source diff could not be displayed because it is too large. You can view the blob instead.
Please register or sign in to comment