Iteraciones
Ya has recorrido arrays con for y con forEach. Hoy juntamos las piezas: qué es
exactamente lo que hace que un array, un string, un Set o un Map se puedan
recorrer con for...of, y las formas de sacar a la
vez claves y valores mientras iteras.
for...of: la forma universal de recorrer
Ya viste for...of por encima en el módulo de
bucles. Funciona sobre cualquier estructura "iterable": arrays, strings,
Sets y Maps, todas con la misma sintaxis simple:
Se parecen mucho de nombre pero hacen cosas distintas:
for...of recorre valores (pensado
para arrays, strings, Sets, Maps). for...in
recorre claves (pensado para las propiedades de un objeto
normal). Usar for...in sobre un array funciona "por accidente" pero no es
lo recomendado — usa for...of para arrays siempre.
Recorrer objetos: for...in y Object.entries
Devuelve un array con solo las claves.
Devuelve un array con solo los valores.
Devuelve un array de pares [clave, valor], ideal para combinar con for...of.
Iterar un Map: siempre por pares
Un Map se recorre de forma parecida, pero cada
vuelta te da directamente el par [clave, valor]:
Regla rápida para elegir: si es un array, string, Set o Map, usa
for...of. Si es un objeto normal y quieres
tanto la clave como el valor, usa Object.entries()
combinado con for...of — es más explícito que
for...in y evita sorpresas.
Comprueba lo que has aprendido
1. ¿Cuál es la diferencia principal entre for...of y for...in?
2. ¿Qué devuelve Object.entries(objeto)?
3. Al recorrer un Map con for...of, ¿qué te da cada vuelta?