n'abend,
Viele Dank fuer die Antwort. So etwas wie HashMap ist mir nicht bekannt (komme aus der XSL ecke). Aber das siehst zumindest schon verstaendlich aus. Darf ich kurz eine paar Fragen zum code Beispiel stellen, siehe kommentar
var items = document.getElementsByTagName( 'farbe' );
// muesste hier nicht item = items[i] stehen? oder was macht die for anweisung?
~~~javascript
var items = document.getElementsByTagName( 'farbe' );
for( var i=0, item; item = items[i]; i++ )
{
alert( item.nodeName );
}
entspricht
var items = document.getElementsByTagName( 'farbe' );
for( var i=0; i < items.length; i++ )
{
var item = items[i];
alert( item.nodeName );
}
nur dass die erste Variante kürzer und Verständlicher ist.
Ich war der Meinung mal etwas von molily in einem Artikel darüber gelesen zu haben. Ich konnte den Artikel aber leider nicht finden. Vielleicht war's auch eine Diskussion in #selfhtml? Weiß jemand wovon ich spreche und kann das Verlinken?
// ist das eine if/ else anweisung?
if( typeof( groups[ t ] ) == 'undefined' ) {
groups[ t ] = [];
} else {
groups[ t ].push( item );
}
Ja, das ist ein If-Else-Block (conditional block). Dieses Stück Code verhält sich jedoch nicht ganz so, wie du das vermutest. In normaler Sprache passiert hier:
WENN groups[t] undefiniert ist,
DANN definiere groups[t] als Array,
SONST füge item in das Array groups[t] ein.
Falls du es noch immer nicht siehst: Wenn groups[t] noch kein Array war, wird es zum Array - aber item wird dem Array NICHT hinzugefügt.
Wenn du das item bereits beim Initialisieren des Arrays hinzufügst, tritt der Fehler nicht auf:
~~~javascript
if( typeof( groups[ t ] ) == 'undefined' ) {
groups[ t ] = [ item ];
} else {
groups[ t ].push( item );
}
Das ist äquivalent zu
if( typeof( groups[ t ] ) == 'undefined' ) {
groups[ t ] = [];
}
groups[ t ].push( item );
weiterhin schönen abend...
#selfhtml hat ein Forum?
sh:( fo:# ch:# rl:| br:> n4:& ie:{ mo:} va:) de:] zu:} fl:( ss:? ls:[ js:|