Ich habe jedoch das Gefühl, dass dies nicht mehr der beste Weg ist, da ES6 das coole Destrukturierungs-/Zuweisungs-Zeug eingeführt hat; Ich habe Deep Object Merging ausprobiert, aber es wird leider nicht unterstützt 🙁 Ich habe auch einige Ramda-Funktionen durchgesehen, konnte aber nichts Anwendbares finden.
Was ist also der beste Weg, um diese beiden Objekte mit ES6 zusammenzuführen?
“ES6 hat das coole Destrukturierungs-/Zuweisungs-Zeug eingeführt” Was beim Zusammenführen von Objekteigenschaften überhaupt nicht hilft.
– Felix Klinge
24. August 2016 um 14:03 Uhr
Ori Drori
Sie können verwenden Object.assign() um sie zu einem neuen Objekt zusammenzuführen:
Sie können auch verwenden Objekt verbreitetbei dem es sich um einen Vorschlag der Stufe 4 für ECMAScript handelt:
const response = {
lat: -51.3303,
lng: 0.39440
}
const item = {
id: 'qwenhee-9763ae-lenfya',
address: '14-22 Elder St, London, E1 6BT, UK'
}
const newItem = { ...item, location: response }; // or { ...response } if you want to clone response as well
console.log(newItem );
Seien Sie vorsichtig, wenn Sie dies tun const newItem = { ...item, location: response };Weil location Eigentum von newItem ist ein Verweis auf response Objekt. Du machst es besser so const newItem = { ...item, location: {...response} }; um Verweise zu vermeiden und sicher zu sein.
– hswner
27. Mai 2018 um 11:05 Uhr
Object.assign funktioniert für mich.. danke.
– Hugo Leonardo
9. Juli 2021 um 11:27 Uhr
notgiorgi
Ein weiterer Ansatz ist:
let result = { ...item, location : { ...response } }
Kann auch hilfreich sein: https://stackoverflow.com/a/32926019/5341953
Auf diese Weise wird die Antwort als Zeiger und nicht als tiefer Klon gespeichert. Dies sollte die richtige Antwort sein let result = { ...item, location : {...response} }
– FisNaN
7. März 2018 um 13:15 Uhr
12353300cookie-checkFühren Sie zwei Objekte mit ES6 zusammen [duplicate]yes
“ES6 hat das coole Destrukturierungs-/Zuweisungs-Zeug eingeführt” Was beim Zusammenführen von Objekteigenschaften überhaupt nicht hilft.
– Felix Klinge
24. August 2016 um 14:03 Uhr