Also bei der "In" Schreiweise werden zusätzlich auch noch die Eigenschaften des Objects ausgegeben?
for-in und for sind i.d.R. nicht austauschbar und wenn du einen Array durchläufst, solltest du for verwenden, solange du nicht wirklich weißt, was du damit tust.
for-in gibt dir alle iterierbaren Objekteigenschaften in ungeordneter Reihenfolge. Von denen will man beim Durchlaufen eines Arrays üblicherweise nur ausgewählte!
for ist erst einmal eine Zählschleife, damit zählt man eine Variable hoch und greift anhand dieser Zahl auf Array-Element zu. Array-Elemente sind auch nur Objekteigenschaften, nur halt limitiert mit den numerischen Namen "0", "1", "2" usw.
Wenn du die Elemente eines Arrays durchlaufen willst, bist du daher mit einer for-Schleife, die auf die Elemente über arr[X] zugreift, schon sehr gut bedient. Bei for-in müsstest du wie gesagt noch einige Prüfungen einbauen - aber wozu dieser Aufwand.
Mathias