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

158
Views
Complejidad entre if-else, switch y regex

Voy a optimizar el código javascript en el que vi el código antiguo como se muestra a continuación,

 var emcont = $('#emcont').val(); numericMatch = emcont.match(/\d/g); if (numericMatch == null) { isValid = false; $('#msg_emcont').html(getMessage('msg_emcont')).show(); } else if (emcont.length != 14) { isValid = false; $('#msg_emcont').html(getMessage('msg_emcont')).show(); } else if (numericMatch.length && numericMatch.length != 10) { isValid = false; $('#msg_emcont').html(getMessage('msg_emcont')).show(); } else { $('#msg_emcont').html('').hide(); }

Voy a convertir las condiciones if-else en condiciones de cambio, pero el problema en el código anterior es que la validación de la segunda condición usó la variable emcont , por lo que no puedo usar directamente numericMatch en la instrucción de switch . Así que decidí usar la variable emcont directamente en la declaración de switch como el siguiente código,

 switch(emcont) { case emcont.match(/\d/g) == null: isValid = false; $('#msg_emcont').html(getMessage('msg_emcont')).show(); break; case emcont.length != 14: isValid = false; $('#msg_emcont').html(getMessage('msg_emcont')).show(); break; case emcont.match(/\d/g).length && emcont.match(/\d/g).length != 10: isValid = false; $('#msg_emcont').html(getMessage('msg_emcont')).show(); break; default: $('#msg_emcont').html('').hide(); break; }

En expresiones regulares usadas en la validación de casos de cambio, por lo que necesito saber qué código es mejor en cuanto a rendimiento.

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

0

No abuse de los efectos secundarios del switch(true) , que es lo que quiso decir

Esto es SECO y más fácil de leer.

 var emcont = $('#emcont').val(); const numericMatch = emcont.match(/\d/g); $('#msg_emcont') .html(getMessage('msg_emcont')) .toggle( numericMatch == null || emcont.length != 14 || (numericMatch.length && numericMatch.length != 10) )

Incluso podría considerar mudarse

 $('#msg_emcont').html(getMessage('msg_emcont'))

a la carga de la página por lo que solo se hace una vez

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!