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

132
Views
Iterar sobre RegExp.exec(...)

Desde la página RegExp.exec en MDN, ofrece el siguiente ejemplo de iteración a través de una coincidencia con el indicador g establecido:

 const regex1 = RegExp('foo*', 'g'); const str1 = 'table football, foosball'; let array1; while ((array1 = regex1.exec(str1)) !== null) { console.log(`Found ${array1[0]}. Next starts at ${regex1.lastIndex}.`); // expected output: "Found foo. Next starts at 9." // expected output: "Found foo. Next starts at 19." }

Tengo dos preguntas sobre este código. La primera es por qué aquí se usa !=== null , ¿por qué el bucle while no se codifica correctamente como:

 while (array1 = regex1.exec(str1)) { // implicitly casts to boolean? console.log(`...`); }

Lo anterior me parece mucho más legible, pero me preguntaba por qué los documentos de MDN usaron el primer enfoque. Segundo, ¿es posible declarar y definir la variable directamente en el ciclo while ? Algo como:

 while (let array1 = regex1.exec(str1)) { // don't need the `let array1` above? console.log(`...`); }

¿O eso no es compatible con el lenguaje JS?

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

0

¿Por qué se usa el !== null aquí...?

Es cierto que en este caso no es necesario. .exec() devuelve una matriz o un null , y dado que las matrices siempre son verdaderas, no hay necesidad de compararlas explícitamente con un null .

¿Es posible declarar y definir la variable directamente en el ciclo while?

No. Si quieres eso, recurre al bucle for , que admite esto:

 for (let array1; array1 = regex1.exec(str1); null) { console.log(`...`); }

De hecho, esto tiene la ventaja de que array1 tiene un alcance más restringido. NB: proporcioné null para enfatizar que la tercera parte del encabezado for no se usa intencionalmente.

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!