Ich bin grade am Verzweifeln! Ich erstelle ein assoziatives Array und bevölkere es u.a. mittels push() (keine Ahnung ob das wichtig ist aber präventiv schreib ich das mal). Noch ein Hinweis: Die Keys die ich benutze sind zwar numerisch, der erste ist aber eine 2 und keine 0...
Assoziative Arrays in JS sind keine Arrays!
Letztlich gibt es auch keine, sondern du nutzt die Eigenschaft von JS, Objekten beliebige Attribute hinzufügen zu könne.Ok, ich komme aus der PHP-Welt und dort ist alles assoziativ, auch die mit numerischen Keys. Mir geht es eigentlich darum: In meinem Array (wirklich ein Array) benutze ich nur numerische keys, aber eben nicht (wie bei einem "normalen" Array) durchnummeriert von 0 bis x. Deshalb brauch ich die for-in Schleife, weil ich nicht weiß welcher der Indizes da sind und welche nicht.
Aber ich bekomme eben diese komischen anderen Keys auch noch raus und weiß nicht warum....
weil du mit for in alle Eigenschaften eines Objektes abfragst. Wie gesagt da es keine AA gibt ist diese Fnktion auch nicht dafür gedacht eines nachzubilden, sie kann allerdings dafür benutz werden, wenn du ein allgemeines Objekt hast.
Für dein Problem ist nur eine normale Schleife über alle Einträge möglich zumal JS fehlende Einträge ja ergänzt (mit undefined).
siehst du hier:
var a = new Array();
a[0] = '1';
a[100] = '100';
alert(a.length);
Struppi.