Hallo
an Rolf:
Mittels Google bin ich als erstes auf den alten Artikel zu contact() auf http://www-hera-b.desy.de/subgroup/computing/IT/www/selfhtml/javascript/objekte/array.htm#concat gestoßen.
Unter "Beachten Sie:" steht dann der Hinweis wie ich mir den z.B. auch im heutigen Wiki gewünscht hätte.
Mit unter zur Hilfenahme der hiesigen Suchfunktion bin ich dann auf den Eintrag
"Enthält das Array ein Objekt, wird nur die Objektreferenz gedoppelt. D.h. die Kopie und das Original zeigen danach auf das gleiche Objekt. Wenn man das nicht will, braucht man einen deep clone Algorithmus, der auch die referenzierten Objekte doppelt - und zwar rekursiv, denn die können ja auch wieder auf Objekte zeigen. Das ist nicht trivial - solche Verweisketten können geschlossen sein und das würde eine Endlosrekursion hervorrufen."
unter https://forum.selfhtml.org/self/2021/oct/26/javascript-reference-types-beispiel-und-frage/1793056#m1793056
gestoßen wo allerdings auf den erwähnten "deep clone Algorithmus" nicht weiter eingegangen wurde und das für mich er böhmische Dörfer sind.
Dann gibt es noch diese Aussage:
"Dazu musst du eine Kopie des Arrays erzeugen. Eine einfache Zuweisung gibt nur die Referenz weiter. Beide Eigenschaften zeigen damit auf dasselbe Array. Eine einfache Kopie kann mit .slice() (ohne Parameter) angelegt werden. Damit wird das Array kopiert. Da du Strings als Inhalte hast, werden diese kopiert. Bei Objekten würden nur die Referenzen kopiert werden."
https://forum.selfhtml.org/self/2021/oct/26/javascript-reference-types-beispiel-und-frage/1793050#m1793050
Deine Beispiele sind recht einfacher Natur. Ich müsste einen ganzen Satz Objekt kopieren, wobei ich nur die Schlüssel, Werte und die Länge des Hautarrays (camListe) benötige. Es gibt auch nur Text bzw. Zahlen und keine Symbole.
Was genau ist mit dem "Spread-Operator" gemeint?
Ich werde wohl mal die Version von Gunnar Bittersmann mit Array.from(a) und Object.create(A) testen.
Wenn das nicht funktioniert kann ich vielleicht noch analog per Doppelschleife die einzelnen Einträge abfragen und neu hinzufügen was meinen Code wohl ziemlich aufblähen wird.
vielen Dank für die Vorschläge