Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

155
Visualizações
¿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 Respostas
Responde à pergunta

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 Relatório

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 Relatório

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda