OK, das ändert aber leider nix an der Tatsache das a[1] einen Wert liefert, es gibt keinen echten get() Syntax!
Damit hast du eine Schwierigkeit des Indexoperator aufgezeigt, der in JS sowohl für den nummerischen Index bei Arrays als auch für die Eigenschaften der Objekte genutzt werden kann.
Allerdings setzt dein Hinweis auf diese Schwierigkeit nicht die Funktionalität eines Arrays ausser Kraft, wie dein Titel suggeriert, length funktioniert nach wie vor korrekt.
Object.prototype[1]="b";
arr=["a"];
for (i in arr) if (arr.hasOwnProperty(i))
{ alert (arr[i])}
Mit all seinen Schwierigkeiten und das es eben nicht in allen Browsern funktioniert. Ich sagte ja bereits, es bleibt dir überlassen mit hasOwnProperty und for in Schleifen zu arbeiten, damit du weiter Hashes nutzen kannst, ohne hast du keine.
> eine for-each loop die "hash" zurückliefert. (übrigens eine genauso lange)
> Frieden?!? :)
Ich hab nix dagegen dass du Objekte für dich so nennst, erst recht wenn du sie dann immer in Anführungszeichen machst
Struppi.