对象深度合并,使用到递归

 两个对象有时需要合并成一个对象并传递给后端,那要如何合并?

两个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得值:

Logo

Agent 垂直技术社区,欢迎活跃、内容共建。

更多推荐