Orlok: Array – Sprachelement und Standardobjekt

Beitrag lesen

Hallo Rolf

da ich gerade am Basisartikel Objekte und Eigenschaften dran bin, bin ich automatisch auf die Abgrenzung Objekt-Array gestoßen und damit auch wieder auf deinen Array-Artikel. Ich finde ihn grundsätzlich gut, möchte aber ein paar Punkte anmerken.

  1. Indexe Ich habe die Information nicht gesehen, dass ein echter Array-Index ein Integer-Wert ist (Wert 0 bis 2^32-1). Sie gehört IMO in den Prosa-Artikel und auch in den Referenz-Artikel.

Zunächst einmal: Ja, du hast recht, diese Information fehlt tatsächlich. Allerdings finde ich die Formulierung Prosa versus Referenz ein wenig missverständlich; Der unter Sprachmittel einsortierte Artikel [JavaScript/Array] soll in erster Linie den Objekt-Typ Array zum Gegenstand haben. Das heißt, dieser Artikel ist grundsätzlich der richtige Ort, um die Eigenschaft length von Arrays abzuhandeln.

Der unter Standardobjekte einsortierte Artikel [JavaScript/Objekte/Array] hingegen enthält die Beschreibung des Konstruktors Array, der zwar auch eine Eigenschaft length besitzt, die aber nur die Anzahl der formalen Parameter widergibt. Alles was im Zusammenhang mit Arrays, also den Instanzen von Array zu sagen ist, sollte in den Artikel unter der Rubrik Sprachmittel geschrieben werden, aber eben gerade nicht in den Artikel zu der eingebauten Funktion Array, denn genau diese Vermischung von unterschiedlichen Inhalten aufzuheben war das Ziel der ganzen Aktion.

  1. Array(n) vs Array(x,y,z) Ein Ugly Part von JavaScript. In der Referenz hast Du es Oma-kompatibel erläutert. Vielleicht sollte man es dort kompakter darstellen und die Oma-Version in den Prosa-Artikel stellen.

Ich habe es in dem durchaus nicht übermäßig langen Artikel zum Konstruktor Array in meiner Ansicht nach absolut verhältnismäßiger Art und Weise beschrieben. Dass der eingebaute Konstruktor Array ein einzelnes Argument vom Datentyp Number versucht als Wert für die Eigenschaft length des erzeugten Arrays zu setzen, ist einer der wesentlichen Punkte bei der Beschreibung des Verhaltens dieses Standardobjektes. Ich sehe nicht, warum das in diesem Artikel kompakter dargestellt werden sollte.

Was den Artikel zum Sprachmittel Array angeht, sollte dort in den Beispielen nach Möglichkeit fast gänzlich auf den Konstruktor Array zur Erstellung von Arrays verzichtet werden. Aber natürlich sollte dort trotzdem gezeigt werden wie es geht. Dabei kann dann, in der Tat in aller Kürze, auf die von dir angesprochene Besonderheit eingegangen und dazu der Artikel zum Konstruktor Array verlinkt werden.

  1. Assoziative Arrays Den Abschnitt finde ich schwer verständlich. Ich will nicht einfach nach Gutdünken dran rumbasteln - daher hier meine Anregungen:
  • Es müsste klargestellt werden, dass das, was hier als assoziatives Array gezeigt wird, eben kein Array ist, sondern ein allgemeines Objekt.
  • Normale Objekte als Beispiel für assoziative Arrays zu bringen, halte ich für nicht so gut. Damit förderst Du unnötig die Kritik, die im Objekte-Artikel über AAs geäußert wird. AAs sind sinnvoll, wenn die Schlüssel erst zur Laufzeit bekannt werden, also z.B. wenn man ein Dictionary oder eine Lookup-Tabelle braucht.
  1. Literalnotation eines Array of Objects Es ist gut, sowas zu erklären. Aber als Nachklapperer zu AAs geht es unter. Vielleicht verwendest Du es einfach direkt in deinem AA Beispiel und erläuterst kurz, was das tut?

Dass der Artikel, der unter Sprachmittel einsortiert ist, stark verbesserungswürdig ist, brauchst du mir nicht zu sagen. Zu diesem Artikel habe ich übrigens inhaltlich gar nichts beigetragen, sondern das ist im Wesentlichen das, was vorher unter Standardobjekte einsortiert war. Plus einige Veränderungen an den Beispielen durch Matthias Scharwies, wenn ich das richtig mitbekommen habe.

Ich hatte mir eigentlich vorgenommen, sobald ich mit meinen anderen Baustellen soweit fertig bin, diesen Artikel komplett neu zu schreiben, weil ich ebenso wie du der Ansicht bin, dass hier einiges zu verbessern und hinzuzufügen ist. – Allerdings kann das durchaus noch etwas dauern …

Gruß,

Orlok