D3.js | d3.bisectRight()函数
bisectRight()函数是 D3.js 中的内置函数,它接受一个值作为其参数之一,并返回索引以将元素插入作为另一个参数传递的数组中,以保持指定范围内的排序顺序或整个数组。
默认情况下,该函数在查找索引时会考虑整个数组,除非通过将 start 和 end 作为参数传递给函数来指定范围。
函数binary 搜索值并检查它是否已经存在于范围中。如果找到,则将其插入该元素的右侧。
句法:
d3.bisectRight(array, value, start, end)
参数:此函数接受上面提到的四个参数,如下所述:
- array:此强制参数包含一个元素数组。
- value:这也是一个强制参数,包含要插入到数组中的值。
- start:这是一个可选参数,它指定范围的起始索引。
- end:这是一个可选参数,它指定范围的最后一个索引。
返回值:该函数返回一个整数值,表示需要在数组中插入值以保持排序顺序的索引。
以下程序说明了d3.bisectRight()函数的使用:
示例 1:这个程序说明了 d3.bisectRight() 的使用,它只传递了两个强制参数。
D3.js d3.bisectRight() Function
输出:
63 needs to be inserted at 4
80 needs to be inserted at 5
示例 2:该程序说明了使用 d3.bisectRight() 将所有四个参数传递给函数。
D3.js d3.bisectRight() Function
输出:
63 needs to be inserted at 5
63 needs to be inserted at 8
示例 3:该程序说明了d3.bisectRight()和d3.bisectLeft()函数之间的区别。
Difference between d3.bisectRight()
and d3.bisectLeft() functions
输出:
63 needs to be inserted at 3
63 needs to be inserted at 4
参考: https://devdocs.io/d3~5/d3-array#bisectRight