将这两个对象合并成一个对象
const obj1 = {
"configType": "all",
"config": {"a":'1'}
};
const obj2 = {
"target_cluster": "dev-0821",
"type": "import",
"config": {
"connector.class": "MirrorSourceConnector",
"tasks.max": 2
},
"name": "22"
};
方法1: Object.assign
有一个坑就是let objnew= object.assign({},obj1,obj2)
这个样子就不改变obj1的值了;他会修改assigin()里面第一项的值,并返回
const obj2.config=(Object.assign(obj1.config, obj2.config))
const newObj=(Object.assign({},obj1, obj2))
Object.assign直接使用不符合预期,会将相同属性合并替换;
obj2会将obj1的相同属性config的内容替换
so,若非先非要使用那就是先把config合并一下,然后再把obj1,2合并一下
前提是你要知道要合并的是config, 假如你不知道里面是config,还是config1,
那这样写不太行;如果你不知道的话那就只能循环取值比较,然后合并
方法2:lodash的mergeWith(🌟推荐使用 )
_.mergeWith(obj1, obj2);