怎么实现如下这种需求的对象合并?

有这样的需求,实现对象的逐层合并。规则如下:

1.两者都必定是复数层级的对象,属性的值存在会是各种数据类型的情况

2.两者结构完全相同,但层级数量不一定相同,同属性名的值数据类型相同

3.两者合并的规则遵从:

a)同属性名假设两方中有一方值为[]、{}、''、null、undefined,而另一方不是,另一方覆盖这方;
b)同属性名假设两方的值都不是''、null、undefined,后者覆盖前者
c)同属性名假设两方的值都是{},合并两者,若有同属性,后者覆盖前者
d)同属性名假设两方的值都是数组类型,按索引值处理数据,对同索引号的值沿用上面处理规则
e)以上规则都对每层对象的后代属性有效

以上,多谢大佬们啦!

阅读 1.6k
推荐问题