Open In App

D3.js bisector() Function

Last Updated : 29 Jul, 2020
Summarize
Comments
Improve
Suggest changes
Share
Like Article
Like
Report

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.

html
<!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.

html
<!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

Similar Reads