Hallo ich bin mir bewusst dieses Thema wurde in früheren Posts behandelt, aber ich habe immer noch nicht das Ergebnis, das ich brauche. Ich versuche, eine Kopie von einem Array von Objekten zu erstellen, die seine eigene Version des Originals sein werden, und die anderen Daten nicht beeinflussen, wenn Änderungen vorgenommen werden. Bis jetzt funktioniert das Kopieren eines Arrays von Ints gut, wenn ich slice() verwende, aber nicht für Vektor von Objekten. Es wurde in einem anderen Post erwähnt, dass slice() auf Vektor von Objekten immer noch auf die Objekte verweist, also gibt es eine Möglichkeit, es nur nach Wert zu tun. Vielen Dank.versucht Array von Objekten nach Wert zu kopieren nicht Referenz
property var array: new Array
Rectangle{id: ob1; width:50; height:50; color: "red"; property int num: 1}
Rectangle{id: ob2; width:50; height:50; x: 50; color: "blue"; property int num: 2}
Rectangle{id: ob3; width:50; height:50; x: 100; color: "green"; property int num: 3}
Component.onCompleted: {
array.push(ob1)
array.push(ob2)
array.push(ob3)
var array2 = array //slice() will not work here
array[1].num = 1111 //change made to first array NOT intended for second
for(var i = 0; i < array.length; i++){
console.log(array2[i].num) //print out from second array still shows changes to first...
}
}
Ich denke, da sie nicht jQuery erwähnen, sollten Sie 'zurückkehren Object.assign ({}, Wert)' statt, ansonsten ist dies die richtige Antwort ('map') –
Hallo @RobM. yeah du hast Recht, und übrigens wusste ich nichts über Object.assign ({}, value), danke =) –