Moin!
beispiel:
var name="hans mustermann";
name = name.split(" ");
alert(name);das alert gibt nun "hans,mustermann" aus, was natürlich nich mein verlangen war, ich wollte doch ein array?
Ich habe ein wenig rumgespielt in meiner URL-Zeile. Ergebnis:
Das von dir beobachtete Phänomen ist so, wie es auftritt, offenbar korrekt. Schuld dürfte das implizite Typecasting sein, was Javascript anwendet.
Wenn du so vorgehst:
name0="hans mustermann";
name1=name0.split(" ");
alert (typeof(name1)); // ergibt "object"
alert (name1.length); // ergibt 2
alert (name1[0]); // ergibt "hans"
alert (name1[1]); // ergibt "mustermann"
alert (name1); // ergibt "hans,mustermann" !
dann ist alles so, wie du es willst.
Wenn du hingegen so vorgehst, also der Stringvariablen das Ergebnis der Split-Operation zuweist:
name1="hans mustermann";
name1=name1.split(" "); // Hier ist das Problem!
alert (typeof(name1)); // ergibt "string"
alert (name1.length); // ergibt 15
alert (name1[0]); // ergibt "undefined"
alert (name1[1]); // ergibt "undefined"
alert (name1); // ergibt "hans,mustermann" !
dann wird ganz offenbar von Javascript festgestellt, dass name1 (den Namen habe ich geändert, um Probleme mit reservierten Wörtern auszuschließen - er ist aber legal!) ein String ist - und einem String kann man nur wieder einen String zuweisen, also wird das Array der Split-Operation in einen String umgewandelt.
Das sind aber alles Dinge, die du durchaus selber hättest rausfinden können. :) Wie gesagt: Ich habe dazu nur ganz wenig in der URL-Zeile rumgespielt (vorne javascript: eingeben und dann nacheinander alle Befehle - fertig).
- Sven Rautenberg
"Bei einer Geschichte gibt es immer vier Seiten: Deine Seite, ihre Seite, die Wahrheit und das, was wirklich passiert ist." (Rousseau)