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

159
Views
¿Combinar campos de matriz en JavaScript según la condición?

Tengo una cadena con este contenido que se divide en una matriz:

 var CLI = "STRING1 28 1.0\nSTRING2 26 0.5\nSTRING3 2 2.0\nSTRING4 5 1.0"; var CLIarr = CLI.toString().split("\n"); CLIarr[i] = CLIarr[i].toString().split(" ");

La salida se puede generar así:

 for (i = count; i < CLIarr.length; i++) { console.log(CLIarr[i][0]+' '+CLIarr[i][1]+' '+CLIarr[i][2]+'\n'); }

Producción:

 STRING1 28 1.0 STRING2 26 0.5 STRING3 2 2.0 STRING4 5 1.0

¿Cómo fusiono STRING3 y STRING4 para que el resultado se vea así?

Información: 2+5=7 y (2.0+1.0)/2=1.5

 STRING1 28 1.0 STRING2 26 0.5 MERGED 7 1.5

Información

Las CADENA en la salida CLI pueden aparecer en otro orden. La salida CLI puede no contener ninguna de las dos cadenas (STRING3, STRING4) o solo STRING3 o solo STRING4. Si ninguna de las CADENA es parte de la salida CLI, entonces no se requiere la combinación. Si solo STRING3 o STRING4 son parte de la salida CLI, simplemente deben reescribirse en STRING5 y luego eliminarse de la matriz.

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

0

Debe analizar la parte numérica de su cadena como int con parseInt() o float con parseFloat() para poder realizar cualquier operación matemática, porque actualmente se trata como string .

about 4 years ago · Juan Pablo Isaza Report

0

Puede filtrar la matriz de líneas y agregar líneas deseadas.

 const getMerged = ([a, b, count]) => count ? ['MERGED', a, b / count].join(' ') : [], CLI = "STRING1 28 1.0\nSTRING2 26 0.5\nSTRING3 2 2.0\nSTRING4 5 1.0", add = ['STRING3', 'STRING4'], merged = [0, 0, 0], result = CLI .split('\n') .filter(s => { const [type, a, b] = s.split(' '); if (!add.includes(type)) return true; merged[0] += +a; merged[1] += +b; merged[2]++; }) .concat(getMerged(merged)); console.log(result);

about 4 years ago · Juan Pablo Isaza Report

0

Basado en el fantástico trabajo de @Nina Scholz, he podido crear la respuesta final a mi demanda, que se ve así:

 const getMerged = ([a, b, count]) => ['MERGED', a, (b / count).toFixed(1)].join(' '), CLI = "STRING1 28 1.0\nSTRING2 26 0.5\nSTRING3 2 2.0\nSTRING4 5 1.0", add = ['STRING3', 'STRING4'], merged = [0, 0, 0]; var result = CLI.split('\n').filter(s => { const [type, a, b] = s.split(' '); if (!add.includes(type)) return true; merged[0] += +a; merged[1] += +b; merged[2]++; }); if (merged[2] != 0) { result = result.concat(getMerged(merged)); } console.log(result);

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!