对象深度合并,使用到递归
两个对象有时需要合并成一个对象并传递给后端,那要如何合并?
两个a, b对象 将b对象合并到a对象中
deepMerge方法使用如下:
let form = {
a:1,
b:2,
c:{
c1:9,
c3:10
}
};
let formSubmitData = {
b:6,
d:3,
e:4,
c:{
c1:7,
c2:8
}
};
let newForm;
// 对象深度合并
function deepMergeFun(obj1, obj2) {
let _this = this
for (let key in obj2) {
obj1[key] = obj1[key] && obj1[key].toString() === "[object Object]" ? _this.deepMerge(obj1[key], obj2[key]) : obj1[key] = obj2[key]
}
return obj1
}
//调用
newForm = deepMergeFun(form, formSubmitData);
console.log(newForm)
newForm得值: