The bisector() Function in D3.js is used to returns a new bisector using the specified accessor or comparator function. This method can be used to bisect arrays of objects instead of being limited to simple arrays of primitives.
Syntax:
d3.bisector(accessor) d3.bisector(comparator)
Parameters: This function accepts only one parameter which is mentioned above and described below:
- accessor/comparator: This parameter is the can be accessor or comparator function.
Return value: This function returns the new bisector.
Below given are a few examples of the above function.
Example 1: This program illustrates the use of d3.bisector() using the accessor parameters.
<!DOCTYPE html>
<html>
<head>
<title>D3.js d3.bisector() Function</title>
<script src='https://d3js.org/d3.v4.min.js'>
</script>
</head>
<body>
<script>
var data = [
{date: new Date(2011, 1, 1), value: 0.5},
{date: new Date(2012, 2, 1), value: 0.6},
{date: new Date(2013, 3, 1), value: 0.7},
{date: new Date(2014, 4, 1), value: 0.8}
];
var bisectDate =
d3.bisector(function(d) { return d.date; }).left;
var dat = new Date(2014, 4, 1);
document.write(bisectDate(data, dat));
</script>
</body>
</html>
Output:
3
Example 2: This program illustrates the use of d3.bisector() using the comparator function parameters.
<!DOCTYPE html>
<html>
<head>
<title>D3.js d3.bisector() Function</title>
<script src='https://d3js.org/d3.v4.min.js'>
</script>
</head>
<body>
<script>
var data = [
{date: new Date(2011, 1, 1), value: 0.5},
{date: new Date(2012, 2, 1), value: 0.6},
{date: new Date(2013, 3, 1), value: 0.7},
{date: new Date(2014, 4, 1), value: 0.8}
];
var bisectDate =
d3.bisector(function(d, x) { return d.date - x; }).right;
var dat = new Date(2014, 4, 1);
document.write(bisectDate(data, dat));
</script>
</body>
</html>
Output:
4