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

108
Vistas
for..in en javascript produce una salida diferente a forEach y for loop?

Me sorprende que no me haya enfrentado a esto hasta hoy, pero me costó un día entero porque creía ciegamente que mi for...in funcionará como debería. Por favor, ayúdame a entender por qué sucede esto con for...in ? Ahora estoy paranoico de usar for...in .

He simplificado el ejemplo para que podamos centrarnos en la causa raíz.

 /** map data we are interested in looping */ let map = { '0': [], '1': ['1'] }

a continuación se muestran los diferentes escenarios y sus respectivas salidas.

 /** * Method 1: Trouble maker * * details: * when debugged it picks up 1 and then jumps to 0 before going inside * the loop for printing console */ for(let val in map['1']){ console.log(val); // gives 0 } /** Method 2: using forEach but i cant use return */ map['1'].forEach((pre) => { console.log(pre); // gives 1 }) /** Method 3: this is more verbose but can always fallback */ let result = map['1']; for(let i=0; i< result.length; i++){ console.log(result[i]); // gives 1 }
about 4 years ago · Juan Pablo Isaza
3 Respuestas
Responde la pregunta

0

Tu bucle for...in es incorrecto. val debe ser el índice de la matriz, por lo que el índice 0 sería 1 .
Ejemplo:

 let map = { '0': [], '1': ['1'] } const array = map['1']; for(let index in array){ console.log(array[index]); // gives 1 }

about 4 years ago · Juan Pablo Isaza Denunciar

0

Usar for ... of

 for(let val of map['1']){ console.log(val); }

for ... in bucles sobre propiedades enumerables de un objeto.

for ... of crea un bucle iterando sobre objetos iterables.

about 4 years ago · Juan Pablo Isaza Denunciar

0

Como puede ver en For..in , la declaración for...in se usa para iterar a través de la propiedad de un objeto, es decir, claves/índices, por lo que la razón por la que su ciclo for...in imprime 0 es porque imprimió extraiga cada índice a través de su matriz, que en este caso será "0" ya que su matriz solo contiene 1 elemento.

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