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

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

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 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