一个关于对象深合并的问题?

现有两个对象:

https://img.mukewang.com/5bffa1d50001793202580358.jpg

我想通过deepMerge(obj1, obj2)以后最终能得到(要用原生js):

https://img.mukewang.com/5bffa1df0001467602340238.jpg

这个题目想了很久没想出来怎么解,也想过用递归和Object.assign但是得不到想要的结果,希望大神指点指点。

红颜莎娜
浏览 609回答 1
1回答

MMTTMM

function deepMerge(obj1, obj2) {    var key;    for(key in obj2) {        // 如果target(也就是obj1[key])存在,且是对象的话再去调用deepMerge,否则就是obj1[key]里面没这个对象,需要与obj2[key]合并        obj1[key] = obj1[key] && obj1[key].toString() === "[object Object]" ?        deepMerge(obj1[key], obj2[key]) : obj1[key] = obj2[key];    }    return obj1;}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript