Rolf B: Javascript, Array, Objekte kopieren

Beitrag lesen

Hallo Franz,

JSON.parse(JSON.stringify(arr1.slice(-n)));

also, bevor Du in diesem Kaninchenloch auf ein schwarzes Kaninchen oder gar die Herzkönigin triffst…

Folge lieber dem hier: 🕳️🐇 🏃💨

Du kannst in einem Rutsch kopieren und anpassen. Vorausgesetzt, dass Du den neuen Wert im forEach-Callback gut bestimmen kannst.

arr1.slice(-2).forEach(function(element) {
   const copy = {...element};  // Kopie des Elements
   copy.XPos = 'Neuer Wert';   // Fix
   arr1.push(copy);            // Ab ins Array
});

Es geht auch mit einer for...of Schleife (das ist das prozedurale Gegenstück zur forEach Funktion):

for (let element of arr1.slice(-2)) {
   const copy = {...element};
   copy.XPos = 'Neuer Wert';
   arr1.push(copy);
}

copy.XPos? Ja, das ist ein normaler String als Key, da brauchst Du keine ["XPos"] Schreibweise. Hab ich bislang im Thread nicht drauf geachtet.

Da deine Array-Einträge reine Key-Value Paare sind, ist die Frage nach flacher oder tiefer Kopie eh irrelevant.

Rolf

--
sumpsi - posui - obstruxi