Bei einem Array selbst iteriere ich oftmals direkt über einen definierten Index like
Code:
for(var index: index < length; ++index)


Einfach weil eine iteration mehr Zeit beansprucht. Oder ich die Reihenfolge beachten muss/möchte.

for...in ist halt oftmals sinnvoll wenn man Objekte/Arrays durchlaufen möchte und nicht zusätzlich die values gegenprüfen möchte - Die werden nämlich ignoriert. Nachteil daran wäre halt dass die Reihenfolge nicht beachtet wird, der interpreter aber garantiert dass beim jeweiligen tick der Eintrag nur einmalig genutzt wird.

Code:
var a = new Array(5);
a[0] = 1;
a[1] = 2;
a[2] = 3;

for(var b in a) {
 console.log(b, a[b]);
}

var l = a.length;
for(var i = 0; i < l; ++i) {
 console.log(i, a[i]);
}

Wie man sieht hat das Array eine Grösse von 5. Durch for...in werden aber nur die belegten Values durchlaufen, was bei einer Indexbasierten Loop nicht der Fall wäre.

Ich habe mit Absicht hier eine Iteration mittels for...in gesetzt, weil es beim triggern des Events egal ist, in welcher Reihenfolge dies abgearbeitet wird. So erspare ich mir da auch das weitere Gegenprüfen ob die value null oder undefined ist.

Es kommt halt immer auf die Anforderung als auch das Einsatzgebiet an :-)
_________________________
Bot.public('I love °>features/james-exchange/ft_james-exchange_surprised.gif<>James|/w "<°');