JavaScript:
Trabajando con CSV

Cómo:

JavaScript no tiene funcionalidad incorporada para analizar o convertir a cadena los datos CSV como lo hace con JSON. Sin embargo, puedes gestionar fácilmente los datos CSV usando JavaScript puro para tareas más simples o aprovechando potentes bibliotecas como PapaParse para escenarios más complejos.

Análisis Básico con JavaScript Puro

Para analizar una cadena CSV simple en un arreglo de objetos:

const csv = `nombre,edad,ciudad
John,23,Nueva York
Jane,28,Los Ángeles`;

function parseCSV(csv) {
  const lines = csv.split("\n");
  const result = [];
  const headers = lines[0].split(",");

  for (let i = 1; i < lines.length; i++) {
    const obj = {};
    const currentline = lines[i].split(",");
    
    for (let j = 0; j < headers.length; j++) {
      obj[headers[j]] = currentline[j];
    }
    result.push(obj);
  }
  
  return result;
}

console.log(parseCSV(csv));

Salida:

[
  { nombre: 'John', edad: '23', ciudad: 'Nueva York' },
  { nombre: 'Jane', edad: '28', ciudad: 'Los Ángeles' }
]

Generación Básica a CSV con JavaScript Puro

Para convertir un arreglo de objetos en una cadena CSV:

const data = [
  { nombre: 'John', edad: 23, ciudad: 'Nueva York' },
  { nombre: 'Jane', edad: 28, ciudad: 'Los Ángeles' }
];

function arrayToCSV(arr) {
  const csv = arr.map(row => 
    Object.values(row).join(',')
  ).join('\n');
  
  return csv;
}

console.log(arrayToCSV(data));

Salida:

John,23,Nueva York
Jane,28,Los Ángeles

Uso de PapaParse para Tareas CSV Complejas

Para escenarios más complejos, PapaParse es una biblioteca robusta adecuada para analizar y convertir archivos CSV con opciones para fluxes, trabajadores y manejo de archivos grandes.

Análisis de archivo o cadena CSV con PapaParse:

// Después de agregar PapaParse a tu proyecto
const Papa = require('papaparse');
const csv = `nombre,edad,ciudad
John,23,Nueva York
Jane,28,Los Ángeles`;

Papa.parse(csv, {
  complete: function(results) {
    console.log("Analizado:", results.data);
  }
});

Genera:

Analizado: [
  ["nombre", "edad", "ciudad"],
  ["John", "23", "Nueva York"],
  ["Jane", "28", "Los Ángeles"]
]

Convertir un arreglo a una cadena CSV con PapaParse:

const data = [
  { nombre: 'John', edad: 23, ciudad: 'Nueva York' },
  { nombre: 'Jane', edad: 28, ciudad: 'Los Ángeles' }
];

console.log(Papa.unparse(data));

Genera:

nombre,edad,ciudad
John,23,Nueva York
Jane,28,Los Ángeles

Estos ejemplos ilustran el manejo básico y avanzado de CSV en JavaScript, facilitando el intercambio de datos en aplicaciones web y más allá.