我有两个对象:如何在JavaScript中连接两个对象与数组属性?
var one = {
addedItems: [0, 1],
removedItems: [8, 9],
oneTwo: false,
someStuff: {
anotherArray: ['a', 'b']
}
};
var two = {
addedItems: [3, 4],
removedItems: [6, 7],
someStuff: {
anotherArray: ['c', 'd']
}
};
而在最后,我需要合并这两个对象,并得到这样的:
{
addedItems: [0, 1, 3, 4],
removedItems: [8, 9, 6, 7],
oneTwo: false,
someStuff: {
anotherArray: ['a', 'b', 'c', 'd']
}
}
操作应该对不同结构的物体进行。
要做到这一点,最好的方法是什么? jQuery中是否有任何方法或下划线/ lodash允许这样做?
为了澄清......如果两个对象有一个属性,它是一个数组,你要到2彼此融合...但是如果一个'会发生什么.foo:true'和'b.foo:false'当值是原子时哪个优先?同样,如果数组中的值包含重复项,那么您希望重复项还是唯一值? – scunliffe
最后一个。例如,如果我们有doConcatenation(一,二),那么来自“two”的属性将是result属性。 – Vovch
这个概念被称为深层合并,并有一个优秀的'deepmerge'库。 [这是一个关于它的博客(昨天发布)](https://davidwalsh.name/javascript-deep-merge) – lonesomeday