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

130
Visualizações
Resolución de problemas de algoritmos: ¿Cómo simplificar el siguiente código javascript?

Función descriptiva

when const mergeTable=[2], valor de retorno de función esperado

 { rowSpan: 2 } { rowSpan: 0 }

cuando const mergeTable=[2,3]; Valor de retorno esperado de la función

 { rowSpan: 2 } { rowSpan: 0 } { rowSpan: 3 } { rowSpan: 0 } { rowSpan: 0 }

cuando const mergeTable=[2,3,3,2]; Valor de retorno esperado de la función

 { rowSpan: 2 } { rowSpan: 0 } { rowSpan: 3 } { rowSpan: 0 } { rowSpan: 0 } { rowSpan: 3 } { rowSpan: 0 } { rowSpan: 0 } { rowSpan: 2 } { rowSpan: 0 }

funciones que deben optimizarse, la función ha sido implementada, el código es redundante, cómo optimizar

 const mergeTable = [2, 3, 3, 2]; // test ok // How to simplify this function function renderRowSpan(index) { for (let i in mergeTable) { i = Number(i); if (i === 0) { if (index === 0) { return { rowSpan: mergeTable[0] }; } else if (index < mergeTable[0]) { return { rowSpan: 0 }; } } if (i === 1) { if (index === mergeTable[0]) { return { rowSpan: mergeTable[1] }; } if (index < mergeTable[0] + mergeTable[1]) { return { rowSpan: 0 }; } } if (i === 2) { if (index === mergeTable[0] + mergeTable[1]) { return { rowSpan: mergeTable[2] }; } if (index < mergeTable[0] + mergeTable[1] + mergeTable[2]) { return { rowSpan: 0 }; } } if (i === 3) { if (index === mergeTable[0] + mergeTable[1] + mergeTable[2]) { return { rowSpan: mergeTable[3] }; } if ( index < (mergeTable[0] + mergeTable[1] + mergeTable[2] + mergeTable[3]) ) { return { rowSpan: 0 }; } } } } // execute function for (let index = 0; index < 10; index++) { console.log(renderRowSpan(index)); }
about 4 years ago · Juan Pablo Isaza
2 Respostas
Responde à pergunta

0

Creo que esto debería funcionar y producir un resultado dinámico según la cantidad de elementos en mergeTable.

 function renderRowSpan(mergeTable){ const result = []; for (const item of mergeTable) { let i = item; while(i > 0) { result.push({ rowSpan: i === item ? item : 0 }); i--; } } return result; }
about 4 years ago · Juan Pablo Isaza Relatório

0

function renderRowSpan(mergeTable){ return mergeTable.reduce(function(o, n){ o.push({rowspan:n}); for(let i=1; i<n; ++i) o.push({rowspan:0}); return o; }, []); }
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