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

309
Visualizações
¿Cómo corregir la expresión para eval () para paréntesis al final?

Tengo una expresión matemática válida que solo necesita terminar con algunos paréntesis de cierre para que eval() funcione. Para esto, puedo encontrar los paréntesis sin cerrar en la expresión y agregar paréntesis de cierre hasta que los paréntesis sin cerrar coincidan con los paréntesis de cierre.

Esto es lo que he hecho:

 let expression = `3 * 1 * (4 - 1 - (5 * 9 * (2 - 6 / 5 + (4 - 1 - (5 * 9 * (2 - 6 / 5 - (4 - 1 - (5 * 9 * (2 - 6 / 5 + (4 - 1 - (5 * 9 * (2 - 6 / 5`; const openingParenthesisCount = (expression.match(/[(]/g) || []).length; const closingParenthesisCount = (expression.match(/[)]/g) || []).length; let unclosedParenthesisCount = openingParenthesisCount - closingParenthesisCount; try { console.log(eval(expression)); } catch (error) { // Append closing parentheses until all the parentheses are closed while (unclosedParenthesisCount) { expression += ")"; unclosedParenthesisCount--; } } // Valid expression console.log(eval(expression));

He usado una expresión de prueba para esto y funciona, pero si la expresión es más larga, puede llevar algo de tiempo (pero finalmente mostrará el resultado).

¿Existe un método más fácil/rápido para lograr esto?

about 4 years ago · Juan Pablo Isaza
1 Respostas
Responde à pergunta

0

Sugiero usar la funcionalidad incorporada de String#repeat() y usar un solo bucle en lugar de RegExp.

 const openedCount = Array.from(expression).reduce( (opened, curChar)=> { if (curChar === '(') opened++ else if (curChar === ')') opened-- return opened }, 0 ) expression += ')'.repeat(openedCount)
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