Функция d3.js bisect ()
Функция 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 > </ 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 > </ 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