Lieber heinetz,
for (var my_item in my_array) { ... do something }
willst Du über Objekteigenschaften iterieren? Bei Arrays kann man bequem die forEach
-Methode mit callback-Funktion nutzen.
Das funktioniert richtig, solange my_array ein Array ist. Nun kann es aber sein, dass in my_array ein string steht.
Auch dann funktioniert es richtig! Mit for in
kommst Du auch bei Strings an die Objekteigenschaften heran.
Ich könnte folgendermassen dafür sorgen, dass my_array in dem Fall zu einem Array mit einem Element konvertiert wird:
Warum willst Du, dass ein String ein Array ist? Willst Du über die einzelnen Zeichen iterieren? Dann ist Dein Ansatz ungeeignet!
var a = {
array: ["eins", "zwei", "drei"],
string: "eins zwei drei"
};
for (var eigenschaft in a) {
for (var i=0; i < a[eigenschaft].length; i++) {
console.log(a[eigenschaft][i]);
}
}
/* Ausgabe der Browser-Console:
eins debugger eval code:9:9
zwei debugger eval code:9:9
drei debugger eval code:9:9
e debugger eval code:9:9
i debugger eval code:9:9
n debugger eval code:9:9
s debugger eval code:9:9
debugger eval code:9:9
z debugger eval code:9:9
w debugger eval code:9:9
e debugger eval code:9:9
i debugger eval code:9:9
debugger eval code:9:9
d debugger eval code:9:9
r debugger eval code:9:9
e debugger eval code:9:9
i debugger eval code:9:9
*/
Hier hast Du beide Herangehensweisen vorgeführt.
Liebe Grüße,
Felix Riesterer.