javascript 深度合并JS对象(与Object.assign和其他的浅合并不同)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript 深度合并JS对象(与Object.assign和其他的浅合并不同)相关的知识,希望对你有一定的参考价值。
//Recursive deep merge JS objects (unlike shallow merge of Object.assign and else)
function deepMerge(target, source) {
let output = Object.assign({}, target);
if (this.isObject(target) && this.isObject(source)) {
Object.keys(source).forEach(key => {
if (this.isObject(source[key])) {
if (!(key in target))
Object.assign(output, {
[key]: source[key]
});
else output[key] = this.deepMerge(target[key], source[key]);
} else {
Object.assign(output, {
[key]: source[key]
});
}
});
}
return output;
}
以上是关于javascript 深度合并JS对象(与Object.assign和其他的浅合并不同)的主要内容,如果未能解决你的问题,请参考以下文章
如何将 JavaScript 类实例与对象合并?
使用deepMerge库深度合并两个对象可枚举属性
JS----对象的合并与克隆与数组的深浅克隆
javaScript基本功001
前端——JS
javascript 对象按属性#js #object合并