dedlfix: JavaScript Array und Object

Beitrag lesen

Tach!

Wie kann ich ein Objekt multidimensional erstellen.

Das gibt es nicht. Die Eigenschaftennamen eines Objekts streben nicht konstant in eine bestimmte Richtung, wie die Werte auf der x- oder y-Achse in einem Diagramm. Sie stellen keien Dimension dar. Was du sicherlich meinst ist eine Verschachtelung von Objekten, oder anders ausgedrückt, dass der Wert einer Eigenschaft eines Objekts ein anderes Objekt ist (auf ein anderes Objekt referenziert).

Natürlich kann man auch als Eigenschaftennamen fortlaufende Nummern nehmen. Das System lässt so etwas zu. Aber da sollte man sich eine ganz gute Begründung für diese Vorgehensweise einfallen lassen, und warum man dafür kein Array verwendet hat.

var data = {};
data["1"] = "Pulli";
data["2"] = "Hose";

"data" ist ein ganz ungünstiger Name für eine Variable. Menschliche Verständlichkeit ist sehr wichtig beim Code schreiben. Man sollte wenigstens die Intention hinter den Dingen aus deren Namen ableiten können, erläuternde Kommentare schreibt man ja eh keine ...

Was also ist dein konkreter Anwendungsfall für dieses Beispiel? Ist das eine Liste von irgendwelchen Kleidungsstücken oder ist sind das die eigentlich konkret benennbaren Bestandteile eines bestimmten Anzugs? Du erstellst da gerade einen Mischmasch aus Objekt und den bei Arrays üblichen für Index-Nummern.

var dataAll = {data:{auftragnr:auftragnr,knr:knr},artikel:data};

kann ich das in JS nicht wie bei PHP aufbauen/zusammenführen

$dataAll["data"]["auftragnr"] = auftragnr;
$dataAll["data"]["knr"] = knr;
$dataAll["artikel"]["1"] = pulli;
$dataAll["artikel"]["2"] = hose;

Doch, genauso kann man das auch in Javascript. PHP lässt einem hier die Wahl. Man kann das, was eigentlich ein Objekt darstellt, auch mit Verwendung eines assoziativen Arrays implementieren. In Javascript gibt es ja keine assoziativen Arrays (nur eine Zugriffsweise auf Objekteigenschaften, sie so ähnlich aussieht), da nimmt man gleich Objekte.

var dataAll = {
  data:{
    auftragnr:auftragnr,
    knr:knr
  },
  artikel:data
};

Man sollte das neben der Verwendung aussagekräftiger Bezeichner auch leichter erfassbar formatieren.

dedlfix.