Ho fatto questo semplice test:
codice:
//FOR VS FOR-IN
var ar1 = [];
var ar2 = {}
for(var i = 0; i!=10000; i++) {
ar1[i] = null;
ar2['key' + i] = null;
}
var tm1 = tm(); //tm è una funzione che calcola il tempo :D
for(var i = 0; i!=10000; i++) {
ar1[i] = "stringa";
}
tm1 = tm()-tm1;
var tm2 = tm();
for(var i in ar2) {
ar2[i] = "stringa";
}
tm2 = tm() -tm2;
alert(tm1 + '\n' + tm2);
Ero partito con l'idea di valutare la velocità del for e del for-in nei browser più diffusi.
Ecco i risultati dei test in millisecondi per ciclare oggetti di 10000 elementi:
FIREFOX 2
IE 6
OPERA 9
Firefox va benone, entrambi i test vengono eseguiti nello stesso tempo. IE fa un pò di fatica nel for-in, ma niente di grave ( i risultati di IE sono praticamente identici per Safari ).
Ma qui viene il bello: avete visto il risultato di Opera per il for-in???
Qualcuno mi sa spiegare come mai questo valore assurdo?
VVoVe:
VVoVe:
VVoVe: