He visto muchas preguntas que sugieren usar:
for (var i = 0; i < myArray.length; i++){ /* ... */ }
en vez de:
for (var i in myArray){ /* ... */ }
para matrices, debido a iteraciones inconsistentes ( ver aquí ).
Sin embargo, parece que no puedo encontrar nada que parezca preferir el bucle orientado a objetos:
myArray.forEach(function(item, index){ /* ... */ });
Lo que me parece mucho más intuitivo.
Para mi proyecto actual, la compatibilidad con IE8 es importante y estoy considerando usar el polyfill de Mozilla , sin embargo, no estoy 100% seguro de cómo funcionará.
- ¿Existen diferencias entre el bucle for estándar (el primer ejemplo anterior) y la implementación Array.prototype.forEach de los navegadores modernos?
- ¿Existe alguna diferencia entre las implementaciones de navegadores modernos y la implementación de Mozilla vinculada anteriormente (con especial atención a IE8)?
- El rendimiento no es un problema, solo la coherencia con las propiedades que se repiten.
break
salirforEach
. Pero una gran ventaja es crear un nuevo alcance con la función. Con el polyfill no deberías tener ningún problema (al menos no he encontrado ninguno).