Функция d3.js bisect ()

Опубликовано: 9 Декабря, 2021

Функция bisect () - это встроенная функция в D3.js, которая принимает значение в качестве одного из своих параметров и возвращает индекс для вставки элемента в массив, переданный в качестве другого параметра, чтобы поддерживать порядок сортировки в указанном диапазоне или в весь массив.

Функция рассматривает весь массив при поиске индекса по умолчанию, если только диапазон не указан путем передачи start и end в качестве параметров функции.

Функция binary ищет значение и проверяет, существует ли оно уже в диапазоне. Если он найден, он вставляется слева от этого элемента.

Синтаксис:

 d3.bisect (массив, значение, начало, конец)

Параметры: эта функция принимает четыре параметра, упомянутых выше и описанных ниже:

  • array: этот обязательный параметр содержит массив элементов.
  • значение: это также обязательный параметр, который содержит значение, которое нужно вставить в массив.
  • start: это необязательный параметр, указывающий начальный индекс диапазона.
  • конец: это необязательный параметр, указывающий последний индекс диапазона.

Возвращаемое значение: функция возвращает единственное целочисленное значение, обозначающее индекс, в который значение должно быть вставлено в массив для поддержания порядка сортировки.

Приведенные ниже программы иллюстрируют использование функции d3.bisect () :

Пример 1: Эта программа иллюстрирует использование d3.bisect (), передавая только два обязательных параметра.

<!DOCTYPE html>
< html >
< head >
< title >D3.js d3.bisect() 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.bisect(array, value1);
document.write(value1 + " needs to be inserted at "
+ pos + "< br >");
var value2 = 80;
var pos2 = d3.bisect(array, value2);
document.write(value2 + " needs to be inserted at "
+ pos2);
</ script >
</ body >
</ html >

Выход:

 63 нужно вставить в 4
80 нужно вставить в 5

Пример 2: Эта программа иллюстрирует использование d3.bisect (), передающего функции все четыре параметра.

<!DOCTYPE html>
< html >
< head >
< title >D3.js d3.bisect() 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.bisect(array, value1, 2, 5);
document.write(value1 + " needs to be inserted at "
+ pos + "< br >");
var pos2 = d3.bisect(array, value1, 6, 9);
document.write(value1 + " needs to be inserted at "
+ pos2);
</ script >
</ body >
</ html >

Выход:

 63 нужно вставить в 5
63 нужно вставить в 8

Ссылка: https://devdocs.io/d3~5/d3-array#bisect