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

139
Views
Matriz de matrices en una sola cadena con \n

Estoy intentando crear una sola cadena a partir de una matriz de matrices, pero con una condición, los últimos 2 elementos (no se aplica a la primera fila) de la matriz deben estar en "".
La matriz se ve así:

 const data = [ //( not applied to this row) [ "id", "group_name", "admin", "email_", "og.id", "created_by.email", "students", "namesids" ], //( applied to the following rows) [ "80", "Test group", "nilton.updated", "nilton@crowdform.co.uk", "22", "nilton@nilton.com", "nilton@nilton.com,pedro@com.com", "13,14,27" ], [ "18", "PRO Group", "", "", "22", "sys@stys.com", "", "13000" ], [ "10", "Test Group", "TEst", "Test@test.com", "22", "test.test@test.com", "", "" ] ]

Detalles:
Los datos que no contienen nada también deben estar entre comillas. Lo que espero y lo que intenté hasta ahora:
esperado (esta es una cadena, el último carácter de cada línea es \n):

 const this_is_a_string = " id,group_name,admin,email_,og.id,created_by.email,students,namesids 80,Test group,nilton.updated,nilton@crowdform.co.uk,22,nilton@nilton.com,"nilton@nilton.com,pedro@com.com","13,14,27" 10,Test Group,TEst,Test@test.com,22,test.test@test.com,"","" ... "

Lo que intenté, no fue la respuesta correcta:

 data.map(objects => { const newAr = objects.reduce((arr, values, i) => { arr = arr + ',' + values if (i === 6 || i ===7) return arr = arr + ',' + '"' + values + '"'; return arr; }, "") console.log(newAr.substring(1)); return; })

Si es posible, cree una función que pueda recibir los data como primer parámetro y una matriz de posición que debe estar entre comillas. Las matrices siempre tendrán el mismo tamaño que la primera, por eso sé las posiciones que deben estar entre comillas.

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

0

Para cada fila, use Array.prototype.slice() para separar los dos últimos elementos del resto.

Luego, se trata de asignar esas dos últimas entradas a los valores citados y volver a unir todo, separado por comas.

Luego, cada fila se puede unir en una sola cadena separada por líneas nuevas.

 const data = [["id","group_name","admin","email_","og.id","created_by.email","students","namesids"],["80","Test group","nilton.updated","nilton@crowdform.co.uk","22","nilton@nilton.com","nilton@nilton.com,pedro@com.com","13,14,27"],["18","PRO Group","","","22","sys@stys.com","","13000"],["10","Test Group","TEst","Test@test.com","22","test.test@test.com","",""]]; const rowMapper = (row) => [...row.slice(0, -2), ...row.slice(-2).map((v) => `"${v}"`)].join(","); const [header, ...rows] = data; const csv = [header.join(","), ...rows.map(rowMapper)].join("\n"); console.log(csv);


Como se menciona en los comentarios, también podría citar todos los valores, incluso los encabezados y escapar de las comillas incrustadas.

 const csv = data .map((row) => row.map((v) => `"${v.replace(/"/g, '""')}"`).join(",")) .join("\n");
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!