Hallo,
for each(var item in array) {
Wo hast du das her? So ein Konstrukt gibt es in JavaScript nicht. Das ist eine proprietäre Erweiterung von Firefox, die derzeit meines Wissens auch nur Firefox unterstützt.
Dieser Code funktioniert. Jedoch nur im Firefox (3) und IE (6).
Das glaube ich nicht.
Ich habe das Script desweiteren mit Safari (aktuellste Version) und Opera
9.26 getestet und diese weigern sich das Script auszuführen.
Kein Wunder.
Ich denke es liegt an der For-Each Schleife. Änder ich die Schleife in eine For-In, so wird das Script zwar ausgeführt, liefert aber als Rückgabewert undefined bzw ein kaputtes Array.
for (var item in array) {
Anscheinend hast du den Unterschied zwischen for-each und for-in noch nicht verstanden. Sie sind nämlich nicht so austauschbar.
for-each durchläuft alle Member-Namen, for-in alle Member.
Das heißt:
for (var memberName in object) liefert in der Variablen memberName die Namen der Member als Strings
for each (var member in object) liefert in der Variable member die Member selbst
var temp = item.split('=');
item ist hier die Nummer des Arrayelements, nicht das Arrayelement selbst!
Es wird also ausgeführt:
"0".split('=')
"1".split('=')
"2".split('=')
...
Arrays kannst du durchaus mit for-in durchlaufen:
for (var number in array) {
var arrayElement = array[number];
// mach was mit arrayElement
}
Allerdings können einem bei dieser Schreibweise zusätzlich zu den Array-Elementen vererbte Member reinfummeln, also bleibt man besser bei der for-Schleife, die die Nummern iteriert.
Mathias