La función nest.object() en D3.js se usa para aplicar el operador de anidación a la array dada y devuelve el objeto anidado del par clave-valor.
Sintaxis:
nest.object( array )
Parámetros: esta función acepta un solo parámetro como se mencionó anteriormente y se describe a continuación:
- Array: este parámetro contiene la array de objetos.
Valor devuelto: Devuelve el objeto.
A continuación se muestran algunos ejemplos de la función anterior.
Ejemplo 1: cuando no existe una clave duplicada.
HTML
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content= "width=device-width, initial-scale=1.0"> <style> .originalColor { height: 100px; width: 100px; } .darkerColor { height: 100px; width: 100px; } </style> </head> <body> <!-- Fetching from CDN of D3.js --> <script type="text/javascript" src="https://d3js.org/d3.v4.min.js"> </script> <script> // Forming the array of objects let array = [ { car: "car1" }, { model: "model1" }, { car: "car2" }, { model: "model1" }, { car: "car3" }, { model: "model2" }, { car: "car4" }, { model: "model2" }, { car: "car5" }, { model: "model3" } ] let data = d3.nest() .key(function (d) { return d.car; }) .key(function (d) { return d.model; }) .object(array) console.log("Type is: ", typeof array) console.log(data); </script> </body> </html>
Producción:
Ejemplo 2: cuando existen claves duplicadas y se accede a esas claves que no existen cuando se accede, las salidas no están definidas.
HTML
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content= "width=device-width, initial-scale=1.0"> <style> .originalColor { height: 100px; width: 100px; } .darkerColor { height: 100px; width: 100px; } </style> </head> <body> <!-- Fetching from CDN of D3.js --> <script type="text/javascript" src="https://d3js.org/d3.v4.min.js"> </script> <script> // Forming the array of objects let array = [ { car: "car1" }, { model: "model1" }, { car: "car3" }, { model: "model1" }, { car: "car3" }, { model: "model2" }, { car: "car3" }, { model: "model2" }, { car: "car5" }, { model: "model3" } ] let data = d3.nest() .key(function (d) { return d.car; }) .key(function (d) { return d.model; }) .key(function (d) { return d.car; }) .object(array) console.log(data); console.log(data.car1); // Key does not exists so // output is undefined console.log(data.car2); console.log(data.car3); </script> </body> </html>
Producción: