assoziative Arrays?
Klaus Junge
- javascript
0 Curt
Hallo allerseits,
es ist mir ja peinlich, aber ich kriege es nicht mehr hin,
und finden tu' ich das auch nicht mehr.
Ich habe eine Reihe von Bildchen mit Namen:
<img src="..." name="punkt_erster"
<img src="..." name="punkt_zweite" ...
Ferner wollte ich ein Array bauen in dem mehrere Informationen
stehen, u.A. Stati, Namen, ein zweidimensionales Array also.
Außerdem wollte ich mit Namen auf die Einträge zugreifen,
so etwa: punkte[erster].status, punkte[zweiter].bildname ...
Ich glaube, Christine hat sowas mal 'assoziatives Array' genannt.
Natürlich will ich auch über eine indizierten Schleife zugreifen:
for(i = 0; i<length(punkte); i++)...
Klappen tut's nur nicht, nur indiziert kriege ich das gebacken.
Wie ging das noch?
Klaus
Ich glaube, Christine hat sowas mal 'assoziatives Array' genannt.
Natürlich will ich auch über eine indizierten Schleife zugreifen:
for(i = 0; i<length(punkte); i++)...Klappen tut's nur nicht, nur indiziert kriege ich das gebacken.
Wie ging das noch?Klaus
Kann Dir jetzt erstmal nur kurz ein paar Bemerkungen zu assoziativen Arrays geben.
Ist nach meinem Wissenstand nicht moeglich unter JavaScript
Assoziative Arrays sind Feldvariablen die nicht nummerisch indiziert werden sondern ueber eine Stringkonstante
D.h.
Wenn ich auf ein "normales" array zugreife (nummeriertes)
array[1]="Text";
array[2]="noch Text";
Den Inhalt finde ich ueber die Zahl
Bei Assoziativen Arrays geht die Indizierung ueber ein String, und nur ueber ein String
etwa so wuerde es aussehen (nur zum erklaeren)
array[name] = "Schmitty";
Assoziative Arrays lassen sich aber nicht ueber eine nummerischen index ansprechen
gruss
Curt
Hallo allerseits,
nachdem Curt mir den Zahn mit den assoziativen Arrays gezogen hat,
hab' ich zur Abwechslung mal wieder bei Christine gewildert.
Der folgende Konstrukt ist im Prinzip bei SelfHTML/wsuchen.js
und SelfHTML/wdaten.js erräubert.
Menu = new Array();
Menu[0] = new Eintrag("erster", "dot_erster", "normal");
Menu[1] = new Eintrag("zweiter", "dot_zweiter", "hell");
Menu[2] = new Eintrag("dritter", "dot_dritter", "activiert");
Menu[3] = new Eintrag("vierter", "dot_vierter", "warda");
Menu[4] = new Eintrag("fuenfter", "dot_fuenfter", "normal");
Menu[5] = new Eintrag("sechster", "dot_sechster", "hell");
Menu[6] = new Eintrag("siebter", "dot_siebter", "activiert");
Menu[7] = new Eintrag("achter", "dot_achter", "warda");
function Eintrag(EintragName,BildName,Status)
{
this.EintragName = EintragName;
this.BildName = BildName;
this.Status = Status;
};
In diesem 'Array of Objects' (?) kann alles drinstehen was man
für das Menu so braucht. Man kann es auch so erweitern, daß man
per document.write() den HTML-code generieren kann.
Der Zugriff auf die Menustruktur ist auch aus Schleifen heraus
möglich. Die dabei auszuführenden Aktionen sind ansatzweise in
der Struktur selbst beschrieben.
function MenuAuffrischen(AktuelleSeite)
{
for(i = 0; i <= Menu.length; i++)
{
if (document.images)
(top.frameunten.framemenue.document[Menu[i].BildName].src
= eval(Menu[i].Status + '.src'));
};
};
Ich bin mit den Versuchen noch nicht durch, aber bislang sieht
es ganz passabel aus. Die kleinen Gemeinheiten werden sich aber
wohl noch zeigen.
Absicht ist es, den Pflegeaufwand möglichst nur auf eine Stelle
zu konzentrieren. Wahrscheinlich sollte ich mich auch noch mehr
mit Methoden beschäftigen.
Klaus