Franz: Javascript, Array, Objekte kopieren

Beitrag lesen

Hallo Gunnar

Was spricht denn gegen den von Rolf und mir gezeigten Spread-Operator?

const n = 2  // Anzahl der zu kopierenden Objekte
const arr2 = [...arr1.slice(-n)];

Er funktioniert nicht!
Mit "const arr2 = [...arr1.slice(-n)];" erzeugst du ein neues Array. Soweit so gut. Und wie bindest du dieses Array jetzt ins Orginal am Ende ein?
Mit

arr1 = arr1.concat(arr2)

Geht auch!
Dann wollen wir noch ein paar Werte verändern:

max = arr1.length
for (var a=arr1.length-n;a<max;a++) {
   arr1[a]['XPos'] = 'Neuer Wert'
}

Und zumindest bei mir bin ich dann wieder am Anfang, denn es werden nicht nur die letzten neuen Werte aus arr2 verändert, sondern auch die ursprünglichen aus arr1. Das heißt es ist auch wieder nur ein Verweis und keine Kopie!