Учебники

D3.js — API коллекций

Коллекция — это просто объект, который группирует несколько элементов в одну единицу. Он также называется контейнером. Эта глава подробно описывает API коллекций.

Конфигурирование API

Вы можете настроить API, используя следующий скрипт.

<script src = "https://d3js.org/d3-collection.v1.min.js"></script>
<script>

</script>

Методы API коллекций

API коллекций содержит объекты, карты, наборы и гнезда. Ниже приведены наиболее часто используемые методы API коллекций.

  • API объектов
  • API Карт
  • Устанавливает API
  • API гнезд

Давайте подробно рассмотрим каждый из этих API.

API объектов

Object API является одним из важных типов данных. Поддерживаются следующие методы —

  • d3.keys (object) — этот метод содержит ключи свойств объекта и возвращает массив имен свойств.

  • d3.values ​​(object) — этот метод содержит значения объекта и возвращает массив значений свойств.

  • d3.entries (объект) — этот метод используется для возврата массива, содержащего как ключи, так и значения указанного объекта. Каждая запись — это объект с ключом и значением.

d3.keys (object) — этот метод содержит ключи свойств объекта и возвращает массив имен свойств.

d3.values ​​(object) — этот метод содержит значения объекта и возвращает массив значений свойств.

d3.entries (объект) — этот метод используется для возврата массива, содержащего как ключи, так и значения указанного объекта. Каждая запись — это объект с ключом и значением.

Пример. Рассмотрим следующий код.

d3.entries({one: 1})

Здесь ключ равен единице, а значение равно 1.

Пример. Создайте веб-страницу objects.html и добавьте в нее следующие изменения.

<html>
   <head>
      <script type = "text/javascript" src = "https://d3js.org/d3.v4.min.js"></script>
   </head>

   <body>
      <h3>D3 collection API</h3>
      <script>
         var month = {"jan": 1, "Feb": 2, "mar": 3, "apr": 4};
         console.log(d3.keys(month));
         console.log(d3.values(month));
         console.log(d3.entries(month));
      </script>
   </body>
</html>

Теперь запросите браузер, и вы увидите следующий ответ.

API коллекций

API Карт

Карта содержит значения, основанные на парах ключ и значение. Каждая пара ключ-значение называется записью. Карта содержит только уникальные ключи. Это полезно для поиска, обновления или удаления элементов на основе ключа. Давайте подробно рассмотрим различные методы API Карт.

  • d3.map ([object [, key]]) — этот метод используется для создания новой карты. Объект используется для копирования всех перечислимых свойств.

  • map.has (key) — этот метод используется для проверки наличия в карте записи для указанной строки ключа.

  • map.get (key) — этот метод используется для возврата значения для указанной строки ключа.

  • map.set (key, value) — этот метод используется для установки значения для указанной строки ключа. Если на карте ранее была запись для той же ключевой строки, старая запись заменяется новым значением.

  • map.remove (ключ) — используется для удаления записи карты. Если ключ не указан, возвращается false.

  • map.clear () — удаляет все записи с этой карты.

  • map.keys () — возвращает массив строковых ключей для каждой записи в этой карте.

  • map.values ​​() — возвращает массив значений для каждой записи в этой карте.

  • map.entries () — возвращает массив объектов значения ключа для каждой записи в этой карте.

  • (x) map.each (function) — этот метод используется для вызова указанной функции для каждой записи на карте.

  • (xi) map.empty () — возвращает true тогда и только тогда, когда эта карта содержит ноль записей.

  • (xii) map.size () — возвращает количество записей в этой карте.

d3.map ([object [, key]]) — этот метод используется для создания новой карты. Объект используется для копирования всех перечислимых свойств.

map.has (key) — этот метод используется для проверки наличия в карте записи для указанной строки ключа.

map.get (key) — этот метод используется для возврата значения для указанной строки ключа.

map.set (key, value) — этот метод используется для установки значения для указанной строки ключа. Если на карте ранее была запись для той же ключевой строки, старая запись заменяется новым значением.

map.remove (ключ) — используется для удаления записи карты. Если ключ не указан, возвращается false.

map.clear () — удаляет все записи с этой карты.

map.keys () — возвращает массив строковых ключей для каждой записи в этой карте.

map.values ​​() — возвращает массив значений для каждой записи в этой карте.

map.entries () — возвращает массив объектов значения ключа для каждой записи в этой карте.

(x) map.each (function) — этот метод используется для вызова указанной функции для каждой записи на карте.

(xi) map.empty () — возвращает true тогда и только тогда, когда эта карта содержит ноль записей.

(xii) map.size () — возвращает количество записей в этой карте.

Пример. Создайте веб-страницу maps.html и добавьте в нее следующие изменения.

<html>
   <head>
      <script type = "text/javascript" src = "https://d3js.org/d3.v4.min.js"></script>
   </head>

   <body>
      <h3>D3 collection API</h3>
      <script>
         var month = d3.map([{name: "jan"}, {name: "feb"}], 
            function(d) { return d.name; });
         console.log(month.get("jan")); // {"name": "jan"}
         console.log(month.get("apr")); // undefined
         console.log(month.has("feb")); // true
         
         var map =  d3.map().set("fruit", "mango");
         console.log(map.get("fruit")); // mango
         console.log(map.remove("fruit")); // remove key and return true.
         console.log(map.size());    // size is 0 because key removed.
         console.log(map.empty());   // true
      </script>
   </body>
</html>

Теперь запросите браузер, и мы увидим следующий ответ.

API карты

Точно так же вы можете выполнять и другие операции.

Устанавливает API

Набор — это Коллекция, которая не может содержать повторяющиеся элементы. Моделирует математический набор абстракций. Давайте подробно рассмотрим различные методы API Set.

  • d3.set ([array [, accessor]]) — Этот метод используется для создания нового набора. Массив используется для добавления строковых значений. Доступ не является обязательным.

  • set.has (value) — этот метод используется для проверки наличия в наборе записи для указанной строки значения.

  • set.add (value) — используется для добавления указанной строки значения в набор.

  • set.remove (value) — используется для удаления набора, который содержит указанную строку значения.

  • set.clear () — удаляет все значения из этого набора.

  • set.values ​​() — Этот метод используется для возврата массива значений в набор.

  • set.empty () — возвращает true тогда и только тогда, когда этот набор имеет нулевые значения.

  • set.size () — возвращает количество значений в этом наборе.

d3.set ([array [, accessor]]) — Этот метод используется для создания нового набора. Массив используется для добавления строковых значений. Доступ не является обязательным.

set.has (value) — этот метод используется для проверки наличия в наборе записи для указанной строки значения.

set.add (value) — используется для добавления указанной строки значения в набор.

set.remove (value) — используется для удаления набора, который содержит указанную строку значения.

set.clear () — удаляет все значения из этого набора.

set.values ​​() — Этот метод используется для возврата массива значений в набор.

set.empty () — возвращает true тогда и только тогда, когда этот набор имеет нулевые значения.

set.size () — возвращает количество значений в этом наборе.

Пример. Создайте веб-страницу sets.html и добавьте в нее следующие изменения.

<html>
   <head>
      <script type = "text/javascript" src = "https://d3js.org/d3.v4.min.js"></script>
   </head>

   <body>
      <h3>D3 collection API</h3>
      <script>
         var fruits =  d3.set().add("mango")
          .add("apple").add("orange");
         console.log(fruits.has("grapes")); // return false.
         console.log(fruits.remove("apple")); //true
         console.log(fruits.size());    // size is 2
         console.log(fruits.empty());   // true
      </script>
   </body>
</html>

Теперь запросите браузер, и мы увидим следующий ответ на нашем экране.

Устанавливает API

Точно так же мы можем выполнять и другие операции.

API гнезд

Вложенный API содержит элементы в массиве и работает в иерархической древовидной структуре. Давайте подробно рассмотрим различные методы API Nests.

  • d3.nest () — этот метод используется для создания нового гнезда.

  • nest.key (key) — этот метод используется для инициализации новой ключевой функции. Эта функция используется для вызова каждого элемента во входном массиве и возврата элементов в группе.

  • nest.sortKeys (компаратор) — этот метод используется для сортировки ключей в указанном компараторе. Функция определяется как d3.ascending или d3.descending.

  • nest.sortValues ​​(компаратор) — этот метод используется для сортировки значений в указанном компараторе. Функция компаратора сортирует листовые элементы.

  • nest.map (array) — Этот метод используется для применения указанного массива и возврата вложенной карты. Каждая запись в возвращенной карте соответствует отдельному значению ключа, возвращенному первой функцией ключа. Значение записи зависит от количества зарегистрированных функций клавиш.

  • nest.object (array) — Этот метод используется для применения оператора nest к указанному массиву и возврата вложенного объекта.

  • nest.entries (array) — Этот метод используется для применения оператора nest к указанному массиву и возврата массива записей значений ключей.

d3.nest () — этот метод используется для создания нового гнезда.

nest.key (key) — этот метод используется для инициализации новой ключевой функции. Эта функция используется для вызова каждого элемента во входном массиве и возврата элементов в группе.

nest.sortKeys (компаратор) — этот метод используется для сортировки ключей в указанном компараторе. Функция определяется как d3.ascending или d3.descending.

nest.sortValues ​​(компаратор) — этот метод используется для сортировки значений в указанном компараторе. Функция компаратора сортирует листовые элементы.

nest.map (array) — Этот метод используется для применения указанного массива и возврата вложенной карты. Каждая запись в возвращенной карте соответствует отдельному значению ключа, возвращенному первой функцией ключа. Значение записи зависит от количества зарегистрированных функций клавиш.

nest.object (array) — Этот метод используется для применения оператора nest к указанному массиву и возврата вложенного объекта.

nest.entries (array) — Этот метод используется для применения оператора nest к указанному массиву и возврата массива записей значений ключей.

Рассмотрим простую веб-страницу nest.html для выполнения описанных выше методов размещения.

Пример. Рассмотрим следующий пример.

<html>
   <head>
      <script type = "text/javascript" src = "https://d3js.org/d3.v4.min.js"></script>
   </head>

   <body>
      <h3>D3 Nest API</h3>
      <script>
         var data = [
            {
               "color" : "red",
               "key" : 1
            },
            {
               "color" : "green",
               "key" : 2
            },
            {
               "color" : "blue",
               "key" : 75
            }
         ]
         var nest =  d3.nest()
            .key(function (d) { return d.color; })
            .entries(data)console.log(nest);
         var filter = nest.filter(function (d) { return d.key = = = 'red' })
         console.log(filter);
      </script>
   </body>
</html>

Теперь проверьте результат в браузере, и мы увидим следующий результат.