2016-07-11 7 views
0

sry, wenn diese Frage noch da ist, aber ich suchte danach und fand keine Lösung. Auch konnte ich keinen Hinweis aus der Developer.Mozilla Website bekommen, wo Objects.assign etc. gut beschrieben ist.React-Native - Object.assign children change

Die Frage:

Wie kann ich die Kinder eines Objekts zu ändern? Mit genau dem Ausgang, den ich im Folgenden beschrieben habe.

Beispielcode

var obj= {test: [{a: 2}, {b: 3}]}; 
var newChildren = [{a: 3}, {b: 5}, {c: 1}]; 

//I read the obj key value by the following: 
var objKey = Object.entries(obj)[0][0] 

//Here i want to have some code to get the following result 
//My momentary regarding to @webdeb 

var output = Object.assign({}, {objKey: newChildren}) 

actual output: // {objKey: [{a: 3}, {b: 5}, {c: 1}]} 

wanted output: // {test: [{a: 3}, {b: 5}, {c: 1}]} 

Ich habe keine andere Möglichkeit, den Code in einem anderen Format zu erhalten, damit die "Eingabe" in der Art und Weise benötigt wird, i beschrieben. Und ich muss die objKey als eine Variable einstellen, weil ich mehrere Schlüssel in meinem Code habe, den ich für mehrere Kinder einstellen muss. (Doing einige Filter Sachen)

Danke für Ihre Hilfe

BR Jonathan

Antwort

1

Zunächst einmal, verwenden Sie nicht Object als Variable-Name ..

Ok, lässt das Objekt sagen jetzt ist obj

ohne Modifikation der obj

var newObj = Object.assign({}, obj, {test: newChildren})

Oder einfach nur, (modifiziert die obj)

obj.test = newChildren

Ist es das, was Sie suchen?

+0

Hallo webdeb. Danke für die schnelle Rückmeldung. Es funktioniert fast so, wie ich es wollte. Nur der "Test" muss variabel sein. Ich aktualisierte die Frage für weitere und detaillierte Informationen. Und offc habe ich das var Object bearbeitet :) –

1

Nach Lösung gab mir das genaue Ergebnis ich wollte:

obj[objKey] = newChildren; 

console.log(obj) // {test: [{a: 3}, {b: 5}, {c: 1}]} 

Ich nahm diese Lösung auf die Frage zu:

How can I add a key/value pair to a JavaScript object?

Die Bedeutung für mich, die object-key zu haben war, als eine Variable. Die beschriebene Lösung gibt mir die Möglichkeit, einen Wert zu more als nur einen Schlüssel static hinzuzufügen.

+0

ja, so funktioniert der "variable key" access – webdeb

+0

Danke trotzdem für deine Informationen :) Ich habe die Frage nicht buchstabiert 100% pefect vielleicht :) Ich werde diese Antwort als Lösung markieren. –