Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

149
Vistas
D3: solo los datos ordenados se registran en la consola (no se pueden registrar datos sin procesar inmediatamente después de la ingesta)

Tengo un archivo csv llamado text.csv que contiene lo siguiente:

 shape,color,distance
circle,blue,4
square,red,2
circle,blue,7
circle,green,9
triangle,blue,1
square,green,3
octagon,blue,4

Quiero hacer lo siguiente:

  1. carga estos datos
  2. registrar los datos cargados en la consola
  3. ordenar los datos cargados por distance
  4. registrar los datos ordenados

Aquí está mi código:

 <script src="https://d3js.org/d3.v7.min.js"></script>

d3.csv('test.csv', d3.autoType).then(function(data) {
 // INSPECTS THE RAW DATA
 console.log(data);

 // SORTS BY DISTANCE
 let sortedData = data.sort(function (a, b) {
 return d3.descending(a.distance, b.distance);
 })
 // LOGS SORTED DATA
 console.log(sortedData);
})

En la consola, veo que sortedData se registra dos veces .

La variable data (es decir, los datos sin clasificar sin procesar) no se está registrando.

¿Por qué está pasando esto?

¡Gracias!

almost 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

Array.prototype.sort ordena la matriz en su lugar . Además, su sortedData simplemente apunta a data .

Por lo tanto, si desea conservar dos matrices (la original y la ordenada), debe duplicarlas, por ejemplo structuredClone utilizandostructuredClone:

 const csv = `shape,color,distance
circle,blue,4
square,red,2
circle,blue,7
circle,green,9
triangle,blue,1
square,green,3
octagon,blue,4`;

const data = d3.csvParse(csv, d3.autoType);
console.log(data);

// SORTS BY DISTANCE
let sortedData = structuredClone(data).sort(function(a, b) {
 return d3.descending(a.distance, b.distance);
})
// LOGS SORTED DATA
console.log(sortedData);
 <script src="https://d3js.org/d3.v7.min.js"></script>

almost 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda