Usando for each con Arrays
Escribamos un poco de codigo para recorrer nuestro nuevo array con un for .. in:
Suponiendo que esperamos recorrer cada elemento del array y utilizar su valor, por qué el código anterior no funciona como esperamos?
El for each en javascript itera enumerando las propiedades de un objeto, pero por qué nos devuelve cada index en vez de su contenido?
En javascript cada objeto es realmente un array de propiedades, por ejemplo:
y si ahora hacemos:
Pero esto no es lo único que deberiamos tener en cuenta, tambien está el caso donde prototipamos el Array:
Ese es un problema porque no es lo que estamos esperando, queremos que itere sobre los elementos del array, no sus propiedades.
El punto es que nunca estamos seguros si alguna libreria que estemos usando prototipó el Array (por ej. MooTools realiza prototypes de Array internamente).
Mi recomendación, entendiendo como se comportan los arreglos y el for..in en javascript, es utlizar el for loop cuando realicemos iteraciones sobre un array:
De esta manera leemos el array de una forma segura y evitando comportamientos inesperados.
Les dejo un jsFiddle para que prueben los casos e intenten nuevas cosas.