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

87
Vistas
Agregar números desde csv

Estoy tratando de agregar todos los números de una columna a una variable. El problema es que mi código está agregando la cadena a la que da como resultado NaN.

 var csvData=[]; let test = 0; var parser = parse({delimiter: ','}, function(err, data){ }); fs.createReadStream(__dirname+'/test2.csv','utf16le').pipe(parser) .on('data', function(csvrow) { csvData.push(csvrow); test = test + (csvrow[2]); }) .on('end',function() { console.log(test) });

me da: "0Instalaciones diarias de dispositivos00001000101100" y si agrego parseInt (csvrow [2]) obtendré NaN para la prueba.

Mi objetivo es agregar todos los números después de las Instalaciones diarias del dispositivo, ¿qué me estoy perdiendo?

about 4 years ago · Juan Pablo Isaza
2 Respuestas
Responde la pregunta

0

Investigué un poco sobre el paquete CSV de Node.js.

Usa el encabezado

Si su archivo CSV contiene una fila de encabezado como se supone en el comentario de GrafiCode , como en este ejemplo:

 "Day","Daily Device Installs" "2021-09-15",1 "2021-09-16",1

Entonces CSV Parser tiene una función para usar la fila de encabezado con nombres de columna. Ver la opción de columns .

Beneficio:

  1. registrar el encabezado
  2. mapear los nombres de las columnas (para un uso simple en el código)
  3. úselo para hacer que su código sea limpio y expresivo
  4. defenderse de los cambios en el orden de las columnas dentro del CSV de entrada
 var csvData=[]; let test = 0; // options: use default delimiter comma and map header let parser = parse({ columns: header => header.map( column => { console.log(column); // could also map (eg similar to Snake_Case) return column.replace(/ /g,"_"); }) } function addToCounter(value) { if (!isNaN(value)) console.log("WARN: not a number: ", value) return; test += value; } // read from file fs.createReadStream(__dirname+'/test2.csv','utf16le').pipe(parser) .on('data', function(csvrow) { csvData.push(csvrow); addToCounter(csvrow.Daily_Device_Installs); // the column name as mapped with underscore }) .on('end',function() { console.log(test) });

Nota:

  • Extraje el contraincremento a una función.
  • Su matriz csvData ahora contiene para cada fila un objeto (con nombres de columna como claves) en lugar de una matriz de columnas.
about 4 years ago · Juan Pablo Isaza Denunciar

0

probar

 if (!isNaN(csvrow[2])) test += +csvrow[2];
about 4 years ago · Juan Pablo Isaza 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