Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

227
Views
Leer CSV en Typescript da NaN al leer el número

Bueno, estoy tratando de leer un archivo CSV con Typescript

Este es mi código:

 export default class Playlist{ public playlistId: Number = 0; public playlistName: string = ''; constructor(line:string){ const item = line.split(',') this.playlistId = +item[0]; this.playlistName = item[1]; } }

 fs.readFile('.\\csv\\playlist.csv', 'utf8',(err, res) => { if(err){ console.error('YEET'); return; }else{ const playlists = res.split('\n').slice(1).map((x:string) => new Playlist(x)) console.log(playlists) } })

Estos son los datos CSV:

 "1","Music" "2","Movies" "3","TV Shows" "4","Audiobooks"

Este es el objeto de la lista de reproducción que obtengo:

 Playlist { playlistId: NaN, playlistName: '"Music"\r' },

Como puede ver para el ID de la lista de reproducción, obtengo NaN, pero no tengo idea de por qué, porque lo analizo en un número correctamente. Además, no es necesario que el nombre de la lista de reproducción también esté en un formato extraño.

about 4 years ago · Juan Pablo Isaza
3 answers
Answer question

0

Es porque tiene marcas de voz envueltas alrededor de cada valor. Arregle la clase Playlist con lo siguiente:

Clase de lista de reproducción fija

 export default class Playlist { public playlistId: Number = 0; public playlistName: string = ""; constructor(line: string) { const item = line.split(/"|\\r/).join("").split(","); this.playlistId = Number(item[0]); // or keep as =+ item[0] this.playlistName = item[1]; } }

O elimine las comillas del archivo CSV.

CSV de lista de reproducción fija

 1,Music 2,Movies 3,TV Shows 4,Audiobooks
about 4 years ago · Juan Pablo Isaza Report

0

Si ve que su nombre de lista de reproducción, incluye un par extra de comillas dobles '"Music"\r' .

Antes de analizar item[0] , también debería verse como '"1"' y se espera que +'"2"' sea NaN cuando analice eso.

Una solución fácil sería simplemente reemplazar todas las comillas con caracteres vacíos, cambiando efectivamente el análisis a +item[0].replace(/\"/g, "")

about 4 years ago · Juan Pablo Isaza Report

0

no pones ; después de cada valor? ¿Sólo es una pregunta?

about 4 years ago · Juan Pablo Isaza Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!