gruss Mathias
Ich möchte ein mehrdimensionales assoziatives Array erstellen:
http://forum.de.selfhtml.org/archiv/2004/7/84257/#m493695
http://forum.de.selfhtml.org/archiv/2004/7/85970/#m507500
http://forum.de.selfhtml.org/archiv/2004/8/86318/#m510547
var data = new Array();
user["tom"]["familienstand"] = "Ledig";
user["tom"]["wohnort"] = "München";
user["peter"]["familienstand"] = "Verheirate";
user["peter"]["wohnort"] = "Frankfurt";
user["peter"]["wohnort"]["strasse"] = "Bahnhofstrasse";
du benötigst eine reine objekt-struktur:
~~~javascript
var data = {
user: { /* man kann auch "verbotene" bezeichner erzeugen, wenn man deren namen in hochkommata fasst; */
"Thomas Müller": {
familyStatus: "ledig",
location: "München"
}, /* diese lassen sich dann aber nicht mehr ueber die "."-syntax referenzieren, sondern nur noch ueber ["propoertyName"]; */
"Peter Schneider": {
familyStatus: "verheiratet",
location: "Frankfurt"
}
}
};/*
var data = {
user: {
"Thomas Müller": {familyStatus: "ledig", location: "München"},
"Peter Schneider": {familyStatus: "verheiratet", location: "Frankfurt"}
}};
*/
die fuer den von Dir vorgegebenen zweiten fall
user["tom"] = new Object();
user["tom"]["familienstand"] = "Ledig";
user["tom"]["wohnort"] = "München";
user["peter"] = new Object();
user["peter"]["familienstand"] = "Verheirate";/*
user["peter"]["wohnort"] = "Frankfurt"; auskommentiert, weil Du das property
user["peter"]["wohnort"] = "Frankfurt"; "wohnort" sowiso gleich ueberschreibst */
user["peter"]["wohnort"] = new Object();
user["peter"]["wohnort"]["strasse"] = "Bahnhofstrasse";
eines aufgeschluesselten wohnortes so aussehen koennte:
~~~javascript
data = {
user: {
"Thomas Müller": {
familyStatus: "ledig",
residence: {
locationName: "München",
streetName: "Bahnstr.",
streetNumber: "1",
zipCode: "81827"
}
},
"Peter Schneider": {
familyStatus: "verheiratet",
residence: {
locationName: "Frankfurt",
streetName: "Bahnhofstr.",
streetNumber: "1",
zipCode: "65929"
}
}
}
};/*
data = {
user: {
"Thomas Müller": {familyStatus: "ledig",residence: {locationName: "München",streetName: "Bahnstr.",streetNumber: "1",zipCode: "81827"}},
"Peter Schneider": {familyStatus: "verheiratet",residence: {locationName: "Frankfurt", streetName: "Bahnhofstr.", streetNumber: "1", zipCode: "65929"}}
}};
*/
forumslinks zu objektliteralen:
- objekt-literale als "jsDatenbanken" vom 15. 12. 2003,
- literalschreibweise komplexer objekte: JSON - http://json.org/ vom 17. 08. 2004,
- Doppelpunkt notation vom 23. 10. 2004,
link zu "JSON - JavaScript Object Notation" von Mr. Douglas Crockford.
by(t)e by(t)e - peterS. - pseliger@gmx.net
"Because objects in JavaScript are so flexible, you will want to think differently about class hierarchies.
Deep hierarchies are inappropriate. Shallow hierarchies are efficient and expressive." - Douglas Crockford
ie:( fl:) br:> va:( ls:& fo:) rl:| n3;} n4:} ss:} de:µ js:} mo:? zu:]