dedlfix: JavaScript Array und Object

Beitrag lesen

Tach!

Die Frage lautete: "Wann nehme ich ein Object und wann ein Array." Natürlich kann man dazu auch eine Menge Dinge aufzählen, die ebenfalls mit Arrays möglich sind. Empfehlenswert sind diese Verwendungen jedoch nicht unbedingt.

Ein Array verwaltet eine mehr oder weniger unbekannte Anzahl üblicherweise gleichartiger Dinge über einen numerischen Index.

Da kommt’s also auf die Reihenfolge an; ["John", "Doe", 46] ist was anderes als ["Doe", 46, "John"].

Für diese Speicherung unterschiedlicher Eigenschaften sollte man ein Array nicht verwenden. Die Verständlichkeit leidet sehr darunter, weil aus einem person[0] nicht hervorgeht, welche Eigenschaft das ist. person.name ist deutlich einfacher zu verstehen und damit weniger fehleranfällig. Bei diesem Beispiel kommt es nicht auf die Reihenfolge an, sondern dass man solch eine Verwendung vermeidet.

Ein Objekt hat meist eine genau feststehende Anzahl benannter Eigenschaften

??

42. 23.

(Unverständliche Antwort? Hmm, vielleicht habe ich die beiden Fragen missinterpretiert.)

Bei Frauen gibt man das Alter nicht an. Oder doch. So feststehend ist die Anzahl benannter Eigenschaften nun auch nicht.

Unsinnige Beispiele kann ich auch eine Menge anführen. In meiner Aussage repräsentiert das Wörtchen "meist" eine Einschränkung der Allgemeingültigkeit. Natürlich kann man auch eine unbekannte Anzahl Eigenschaften hinzufügen, das ist bei Javascript im Gegensatz zu kompilierten Sprachen kein Problem. Anderswo nimmt man dann Dictionarys/Hashmaps. Die Beschränkung auf eine bestimmte Anzahl an Elementen ergibt sich dann aus einem höheren Kontext.

Für einen allgemein gehaltenen HTTP-Client ist die Anzahl der Headerzeilen auf den ersten Blick unbegrenzt. Die Beschränkung ergibt sich jedoch aus der RFC, in der nur eine konkrete Anzahl an Headern definiert ist. Beziehungsweise aus der konkreten Anwendung, die eine begrenzte Anzahl selbst definierter Header hinzufügt. Natürlich kann man noch weitere Phantasie-Header hinzufügen, aber wo wäre da der Anwendungsfall?

dedlfix.