Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

300
Vistas
¿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 Respuestas
Responde la pregunta

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 Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda