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
相关用法
- d3.js d3.lab()用法及代码示例
- PHP exp()用法及代码示例
- PHP Ds\Map put()用法及代码示例
- d3.js d3.hcl()用法及代码示例
- PHP sin( )用法及代码示例
- PHP abs()用法及代码示例
- PHP cos( )用法及代码示例
- d3.js d3.map.set()用法及代码示例
- PHP next()用法及代码示例
- PHP Ds\Map get()用法及代码示例
- d3.js d3.sum()用法及代码示例
- PHP pi( )用法及代码示例
注:本文由纯净天空筛选整理自RICHIK BHATTACHARJEE大神的英文原创作品 D3.js | d3.bisectRight() Function。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。