實現兩個物件的深度合併

2021-09-24 15:58:29 字數 841 閱讀 7048

es6新增的object.assign()方法只會合併替換物件的第一層key,對於多層的,會當做值處理。

比如 

let obj1 =

}};let obj2 =

}};object.assign(obj1, obj2);

console.log(json.stringify(obj1));

//}}

view code

而我想要的結果是: }}

在這裡看到乙個解決方案:  

我測試了一下,大部分是能滿足情況的,但是下面這種和預想的又不一樣。我希望當這種情況下,obj2中沒有c這個key:此時obj2[b]直接覆蓋掉obj1[b] 

function

deepmerge(obj1, obj2)

return

obj1;

}let obj1 =

}};let obj2 =

};let obj3 =deepmerge(obj1, obj2);

console.log(json.stringify(obj3));

//}}

view code

所以,我再上面的基礎上進行了改進:

function

deepmerge(obj1, obj2)

return

obj1;

}let obj1 =

}};let obj2 =

};let obj3 =deepmerge(obj1, obj2);

console.log(json.stringify(obj3));

//}

view code

JavaScript合併兩個Json物件

如何將兩個json物件合併成新的json物件呢?mergejsonobject function jsonbject1,jsonbject2 for var attr in jsonbject1 for var attr in jsonbject2 return resultjsonobject 複...

jquery 合併兩個 json 物件

jquery.extend deep target,object1,objectn 合併物件到第乙個物件 deep為boolean型別,其它引數為object型別 var object2 durian 100 例項1 extend object1,object2 合併物件,修改第乙個物件 結果 例項...

jquery 合併兩個 json 物件

jquery.extend deep target,object1,objectn 合併物件到第乙個物件 deep為boolean型別,其它引數為object型別 var object2 durian 100 例項1 extend object1,object2 合併物件,修改第乙個物件 結果 例項...