当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


d3.js d3.bisectRight()用法及代码示例


bisectRight()函数是D3.js中的内置函数,该函数接受一个值作为其参数之一,并返回索引以将该元素插入作为另一个参数传递的数组中,以在指定范围内或整个数组中保持排序顺序。

该函数默认情况下会在查找索引时考虑整个数组,除非通过将start和end作为参数传递给函数来指定范围。

函数二进制文件搜索值并检查它是否已在范围内。如果找到,它将插入到该元素的右侧。


用法:

d3.bisectRight(array, value, start, end)

参数:该函数接受上面提到的和下面描述的四个参数:

  • array:此强制参数包含一个元素数组。
  • value:这也是必填参数,其中包含要在数组中插入的值。
  • start:这是一个可选参数,用于指定范围的起始索引。
  • end:这是一个可选参数,用于指定范围的最后一个索引。

返回值:该函数返回单个整数值,该整数表示需要在数组中插入值以保持排序顺序的索引。

以下程序说明了d3.bisectRight()函数的用法:

范例1:该程序说明了仅传递两个必需参数的d3.bisectRight()的用法。

<!DOCTYPE html> 
<html> 
  
<head> 
    <title>D3.js d3.bisectRight() Function</title> 
  
    <script src='https://d3js.org/d3.v4.min.js'></script> 
</head> 
  
<body> 
    <script> 
        var array = [42, 43, 53, 61, 71, 87, 91]; 
        var value1 = 63; 
        var pos = d3.bisectRight(array, value1); 
        document.write(value1 + " needs to be inserted at "  
        + pos + "<br>"); 
  
        var value2 = 80; 
        var pos2 = d3.bisectRight(array, value2); 
        document.write(value2 + " needs to be inserted at "  
        + pos2); 
    </script> 
</body> 
  
</html>

输出:

63 needs to be inserted at 4
80 needs to be inserted at 5

范例2:该程序说明了d3.bisectRight()将所有四个参数传递给函数的用法。

<!DOCTYPE html> 
<html> 
  
<head> 
    <title>D3.js d3.bisectRight() Function</title> 
  
    <script src='https://d3js.org/d3.v4.min.js'></script> 
</head> 
  
<body> 
    <script> 
        var array = [42, 34, 27, 53, 61, 71, 33, 51, 87, 91]; 
        var value1 = 63; 
        var pos = d3.bisectRight(array, value1, 2, 5); 
        document.write(value1 + " needs to be inserted at "  
        + pos + "<br>"); 
  
        var pos2 = d3.bisectRight(array, value1, 6, 9); 
        document.write(value1 + " needs to be inserted at "  
        + pos2); 
    </script> 
</body> 
  
</html>

输出:

63 needs to be inserted at 5
63 needs to be inserted at 8

范例3:此程序说明了d3.bisectRight()函数和d3.bisectLeft()函数之间的区别。

<!DOCTYPE html> 
<html> 
  
<head> 
    <title> 
    Difference between d3.bisectRight()  
    and d3.bisectLeft() functions 
    </title> 
  
    <script src='https://d3js.org/d3.v4.min.js'></script> 
</head> 
  
<body> 
    <script> 
        var array = [42, 54, 59, 63, 71, 81, 91]; 
        var value = 63; 
        var pos = d3.bisectLeft(array, value); 
        document.write(value + " needs to be inserted at "  
        + pos + "<br>"); 
  
        var pos2 = d3.bisectRight(array, value); 
        document.write(value + " needs to be inserted at "  
        + pos2); 
    </script> 
</body> 
  
</html>                    

输出:

63 needs to be inserted at 3
63 needs to be inserted at 4

参考:https://devdocs.io/d3~5/d3-array#bisectRight



相关用法


注:本文由纯净天空筛选整理自RICHIK BHATTACHARJEE大神的英文原创作品 D3.js | d3.bisectRight() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。