I have a object named json
let json ={
c: {
a1:1,
b1:{
a2:6
}
}
}
there is a key name b1
whose value is an Object. In that object I want to add a new key value pair b2 : 100
.
so the newObj
that I want to add
let newObj={
c: {
b1:{
b2:100 // new key-value entry
}
}
}
SO that after using spread operator I can modify the json
as follows
json ={
c: {
a1:1,
b1:{
a2:6,
b2:100
}
}
}
The code that I used is as follows:
var json = {...json, ...newObj}
I know this is completely wrong as this gave an undesirable output which is as follows
json={
c: {
b1:{
b2:100
}
}
}
I am actually doing a React state update with useState
hook where json
is a state and setJson
will set the json
's new state
I did it like:
setJson(current => ({
form : {
...current.form,
...newObj },
},
}));
where newObj is an object
newObj = {
form:{
a:1,
b:{
b1:{
b2:100, //new key-value pair to be added in b1
}
}
}
}
Please suggest an easy way to update the json
state that can be used in that useState
hook
What I want
I want to merge arbitrary objects to json
(merge arbitrary objects (having arbitrary nesting).
The nesting could be very deep