D3.js - API de coleções
Uma coleção é simplesmente um objeto que agrupa vários elementos em uma única unidade. Também é chamado de contêiner. Este capítulo explica detalhadamente a API de coleções.
Configurando API
Você pode configurar a API usando o seguinte script.
<script src = "https://d3js.org/d3-collection.v1.min.js"></script>
<script>
</script>
Métodos da API de coleções
A API de coleções contém objetos, mapas, conjuntos e ninhos. A seguir estão os métodos de API de coleções mais comumente usados.
- API de objetos
- API do Maps
- API de conjuntos
- API Nests
Vamos examinar cada uma dessas API em detalhes.
API de objetos
A API de objeto é um dos tipos de dados importantes. Ele suporta os seguintes métodos -
d3.keys(object) - Este método contém as chaves de propriedade do objeto e retorna uma matriz dos nomes das propriedades.
d3.values(object) - Este método contém os valores do objeto e retorna uma matriz de valores de propriedade.
d3.entries(object)- Este método é usado para retornar uma matriz contendo chaves e valores do objeto especificado. Cada entrada é um objeto com uma chave e um valor.
Example - Vamos considerar o seguinte código.
d3.entries({one: 1})
Aqui, a chave é um e o valor é 1.
Example - Crie uma página da web objects.html e adicione as seguintes alterações a ele.
<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>
Agora, solicite o navegador e você verá a seguinte resposta.
API do Maps
Um mapa contém valores baseados em pares de chave e valor. Cada par de chave e valor é conhecido como uma entrada. Um mapa contém apenas chaves exclusivas. É útil pesquisar, atualizar ou excluir elementos com base na chave. Vamos examinar os vários métodos da API do Google Maps em detalhes.
d3.map([object[, key]])- Este método é usado para criar um novo mapa. O objeto é usado para copiar todas as propriedades enumeráveis.
map.has(key) - Este método é usado para verificar se o mapa possui uma entrada para a string de chave especificada.
map.get(key) - Este método é usado para retornar o valor da string de chave especificada.
map.set(key, value)- Este método é usado para definir o valor da string de chave especificada. Se o mapa anteriormente tinha uma entrada para a mesma string de chave, a entrada antiga é substituída pelo novo valor.
map.remove(key)- É usado para remover a entrada do mapa. Se a chave não for especificada, ele retornará falso.
map.clear() - Remove todas as entradas deste mapa.
map.keys() - Retorna uma matriz de chaves de string para cada entrada neste mapa.
map.values() - Retorna uma matriz de valores para cada entrada neste mapa.
map.entries() - Retorna uma matriz de objetos de valor-chave para cada entrada neste mapa.
(x) map.each(function) - Este método é usado para chamar a função especificada para cada entrada no mapa.
(xi) map.empty() - Retorna verdadeiro se e somente se este mapa tiver zero entradas.
(xii) map.size() - Retorna o número de entradas neste mapa.
Example - Crie uma página da web maps.html e adicione as seguintes alterações a ele.
<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>
Agora, solicite o navegador e veremos a seguinte resposta.
Da mesma forma, você também pode realizar outras operações.
API de conjuntos
Um conjunto é uma coleção que não pode conter elementos duplicados. Ele modela a abstração matemática do conjunto. Vamos examinar os vários métodos da API Sets em detalhes.
d3.set([array[, accessor]])- Este método é usado para criar um novo conjunto. Array é usado para adicionar valores de string. Um acessador é opcional.
set.has(value) - Este método é usado para verificar se o conjunto possui uma entrada para a string de valor especificada.
set.add(value) - É usado para adicionar a string de valor especificada ao conjunto.
set.remove(value) - É usado para remover o conjunto que contém a string de valor especificada.
set.clear() - Remove todos os valores deste conjunto.
set.values() - Este método é usado para retornar uma matriz de valores para o conjunto.
set.empty() - Retorna verdadeiro se e somente se este conjunto tiver valores zero.
set.size() - Retorna o número de valores neste conjunto.
Example - Crie uma página da web sets.html e adicione as seguintes alterações a ele.
<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>
Agora, solicite o navegador e veremos a seguinte resposta em nossa tela.
Da mesma forma, podemos realizar outras operações também.
API Nests
A API Nesting contém elementos em array e atua em uma estrutura de árvore hierárquica. Vamos examinar os vários métodos da API Nests em detalhes.
d3.nest() - Este método é usado para criar um novo ninho.
nest.key(key)- Este método é usado para inicializar uma nova função de tecla. Essa função é usada para chamar cada elemento em uma matriz de entrada e retornar elementos no grupo.
nest.sortKeys(comparator)- Este método é usado para classificar chaves em um comparador especificado. A função é definida como d3.ascending ou d3.descending.
nest.sortValues(comparator)- Este método é usado para classificar valores em um comparador especificado. A função de comparador classifica os elementos folha.
nest.map(array)- Este método é usado para aplicar a matriz especificada e retornar um mapa aninhado. Cada entrada no mapa retornado corresponde a um valor de chave distinto retornado pela primeira função de chave. O valor da entrada depende do número de funções chave registradas.
nest.object(array) - Este método é usado para aplicar o operador de aninhamento à matriz especificada e retornar um objeto aninhado.
nest.entries(array) - Este método é usado para aplicar o operador de nidificação à matriz especificada e retornar uma matriz de entradas de valores-chave.
Considere uma página da web simples nest.html para executar os métodos de nidificação discutidos acima.
Example - Vamos considerar o seguinte exemplo.
<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>
Agora, verifique o resultado em um navegador e veremos o seguinte resultado.
Array[3]
0: Object
1: Object
2: Object
length: 3
__proto__: Array[0]
Array[1]
0: Object
length: 1
__proto__: Array[0]