Ho visto molte domande che suggeriscono di utilizzare:
for (var i = 0; i < myArray.length; i++){ /* ... */ }
invece di:
for (var i in myArray){ /* ... */ }
per gli array, a causa di iterazioni incoerenti ( vedere qui ).
Tuttavia, non riesco a trovare nulla che sembri preferire il ciclo orientato agli oggetti:
myArray.forEach(function(item, index){ /* ... */ });
Il che mi sembra molto più intuitivo.
Per il mio progetto attuale, la compatibilità con IE8 è importante e sto valutando di utilizzare il polyfill di Mozilla , tuttavia non sono sicuro al 100% come funzionerà.
- Esistono differenze tra lo standard for loop (il primo esempio sopra) e l'implementazione Array.prototype.forEach dai browser moderni?
- C'è qualche differenza tra le moderne implementazioni del browser e l'implementazione di Mozilla collegata a sopra (con particolare riguardo a IE8)?
- Le prestazioni non sono tanto un problema, ma solo la coerenza con cui le proprietà vengono iterate.
break
uscire daforEach
. Ma un grande vantaggio è creare un nuovo ambito con la funzione. Con il polyfill non dovresti avere problemi (almeno io non ne ho riscontrati).