I'm currently working on a project with react and I'm facing a problem in merging two objects when using setState method. I have two objects similar to
person1 = {
name: 'ramya',
age: 21,
gender: 'f',
skills:{
technicalSkills: {
languages: ['C', 'C++', 'Java'],
operatingSystems: ['Unix', 'Linux']
},
linguisticSkills: {
toSpeak: ['English', 'Tamil'],
toRead: ['English']
}
},
}
obj2 = {
skills: {
linguisticSkills: {
toRead: ['English', 'Tamil']
}
}
}
I want to change state of person 1's skills.linguisticSkills to
linguisticSkills: {
toSpeak: ['English', 'Tamil'],
toRead: ['English', 'Tamil']
}
skills.linguisticSkills.toSpeak
and skills.linguisticSkills.toRead
keep changing i.e items are added or removed. Whenever it is changes how do I merge person1 and obj2 in setState so I end up in the right state?
UPDATE: _.merge fails for a case like this:
person1 = {
name: 'ramya',
age: 21,
gender: 'f',
skills:{
technicalSkills: {
languages: ['C', 'C++', 'Java'],
operatingSystems: ['Unix', 'Linux']
},
linguisticSkills: {
toSpeak: ['English', 'Tamil'],
toRead: ['English', 'Tamil', 'Telugu']
}
},
}
obj2 = {
skills: {
linguisticSkills: {
toRead: ['English', 'Tamil']
}
}
}
It gives the result same as person 1 whereas
{
name: 'ramya',
age: 21,
gender: 'f',
skills:{
technicalSkills: {
languages: ['C', 'C++', 'Java'],
operatingSystems: ['Unix', 'Linux']
},
linguisticSkills: {
toSpeak: ['English', 'Tamil'],
toRead: ['English', 'Tamil']
}
},
}
is expected.