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

146
Views
¿Por qué el operador de módulo parece funcionar de manera diferente en bucles FOR en javscript?

Estoy creando una función javascript simple que toma la entrada de una cadena y la rellena con el múltiplo de 8 más cercano. La función funciona, sin embargo, parece que el operador de módulo funciona de manera diferente en los bucles for. Por ejemplo:

 var text = "abcdefghi" if(text.length % 8 !== 0){ var amt = 8 - (text.length % 8) for (let i = 0; i < amt; i++) { text = text + "#" } } console.log(text)

Devoluciones: abcdefghi#######

Pero:

 var text = "abcdefghi" if(text.length % 8 !== 0){ for (let i = 0; i < text.length % 8; i++) { text = text + "#" } } console.log(text)

También devuelve: abcdefghi#######

Desde mi comprensión del operador de módulo text.length % 8 = 1 dada una entrada de cadena de 9 caracteres. Entonces, para rellenar la cadena para que tenga 16 caracteres, tendría que hacer 8 - (text.length % 8) = 7 . Cuando pongo eso en su propia variable para que amt = 7 , el bucle for se repite 7 veces y funciona correctamente. Sin embargo, cuando realizo la operación en el bucle for y elimino 8 - , también se repite 7 veces aunque text.length % 8 = 1 . ¿Alguien puede explicar qué está pasando aquí?

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

0

El ciclo for evaluará la longitud del texto cada vez que se ejecuta a través del ciclo. Entonces, si agrega un hashtag al final del texto en el ciclo, cuando evalúe la longitud nuevamente, verá que el texto es más largo que la última vez.

Entonces, básicamente, está agregando el texto en lugar de encontrar la longitud nuevamente, cuando obtiene la longitud del texto fuera del ciclo for, obtendrá una constante de la longitud y podrá usarla con precisión en el ciclo for.

Para ponerlo en un ejemplo, cuando haces la longitud constante, como hiciste en tu primer ejemplo fuera del ciclo for, tienes una ecuación como:

 repeat until x = y

Pero si haces el cálculo dentro del bucle for, obtienes una ecuación como:

 repeat until x = x + 1

Eso simplemente no funciona porque x no se va a igualar a sí mismo + 1 si vuelve a calcular qué es x + 1 cada vez que incrementa x.

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!