Kai345: Javascript split() Funktion

Beitrag lesen

[latex]Mae  govannen![/latex]

var Zahlen = new Array("abcx|def", "abcy|ghi", "abcz|jkl");
for(i=0;i<Zahlen.length;i++) {
var NeueZahlen=Zahlen[i].split("|")[0];
document.write(NeueZahlen);
}

Das Problem dabei ist, ich erhalte den Wert 1 statt 4. Wie ich herrausgefunden habe,
ist der Wert von NeueZahle nur mehr "abcz" (also der letzte Teil), wenn ich auf ihn zugreifen will.

Wieso erwartest du 4? Ich sehe nur drei 'a'

Die Zeile var NeueZahlen=Zahlen[i].split("|")[0]; ist gleich in doppelter Hinsicht falsch.

Zum einen initialisierst du mit var bei jedem Schleifendurchgang die Variable neu, womit der bisherige Inhalt jedes Mal gelöscht wird, zum anderen weist du mit = der Variable bei jedem Schleifendurchlauf immer nur den Wert der aktuellen Operation zu, statt diese an den bisherigen Inhalt anzuhängen.
Dies geschieht mit variable = variable + Operationsergebnis; oder kürzer variable += Operationsergebnis;

Um beim ersten Schleifendurchlauf nun keinen Fehler zu erhalten (das wäre undefiniert + Operationsergebnis), wird die Variable _vor_ der Schleife initialisiert und mit einem entsprechenden Wert vorbelegt, im Falle von Zeichenketten ist dies ""

Cü,

Kai

--
Ash nazg durbatulûk, ash nazg gimbatul,ash nazg thrakatulûk, agh burzum-ishi krimpatul
selfcode sh:( fo:| ch:? rl:( br:< n4:# ie:{ mo:| va:) js:) de:> zu:) fl:( ss:| ls:?
Mein Selfhtml-Kram