Hey, ich habe angefangen, mehr Maps zu verwenden und gefällt mir ganz gut. Aber ich bin jetzt in einem Fall etwas ratlos, wie man damit umgeht oder ob da eine Grenze von Maps ist:
Ich habe eine große Map mit vielen Einträgen, einer davon ist ein Array mit einer Liste an dazugehörenden Einträgen und diese Einträge haben wieder Eigenschaften, die ich über eine Map lösen wollte. (Ich könnte natürlich einfach "große Map -> 2D-Array" machen, aber hätte die Eigenschaften gerne vom Handling wieder über eine Map gelöst)
Ist etwas abstrakt, daher mal Code, um das Problem zu zeigen:
Local $mData[] ; Große Map
Local $aArray[1] ; Array mit Liste zusammengehörender Teile
Local $mMapOther[] ; Kleine Map mit Eigenschaften der Teile im Array
$mMapOther["otherValue"] = "other"
$aArray[0] = $mMapOther
ConsoleWrite($aArray[0].otherValue & @CRLF)
$mData["parts"] = $aArray[0] ; nicht gewolltes Verhalten (s. u)
ConsoleWrite($mData.parts.otherValue & @CRLF)
$mData.parts.otherValue = "nein"
ConsoleWrite($mData.parts.otherValue & @CRLF)
; ----- oben läuft durch
ConsoleWrite("-----" & @CRLF)
Local $mData[] ; Große Map
Local $aArray[1] ; Array mit Liste zusammengehörender Teile
Local $mMapOther[] ; Kleine Map mit Eigenschaften der Teile im Array
$mMapOther["otherValue"] = "other"
$aArray[0] = $mMapOther
$mData["parts"] = $aArray ; Ich will ja das Array ablegen, nicht das erste Teil der Liste
ConsoleWrite($mData.parts[0].otherValue & @CRLF)
$mData.parts[0].otherValue = "nein"
ConsoleWrite($mData.parts[0].otherValue & @CRLF)
Alles anzeigen
Der erste Teil läuft, ist ja recht klar. Aber ich möchte ja das ganze Array ablegen (2. Teil) und da bekomme ich "Variable must be of type "Object".". Habe auch schon verschiedene andere Konstellationen versucht, das Array erst zwischenzuspeichern und dann wieder in die Map schreiben zu wollen, etc. Aber ich kriege die Konstellation nicht zum Laufen.
Was ich dann noch machen wollen würde, ist die Map im Array zu erweitern, irgendwie so in der Art (auch verschiedene Konstellationen versucht):
Lässt sich das irgendwie machen oder sollte ich es nicht so kompliziert machen und statt so zu verschachteln (was ich wegen dem Map-Handling machen wollen würde) einfach 2D-Arrays in der Map nutzen?