如何将两个json与其他对象合并,但不合并现有对象

时间:2019-01-28 09:28:11

标签: javascript arrays json object lodash

我有两个json,我希望将它们合并,以使第二个json的所有新对象都将添加到第一个json的现有对象中,但只是新的对象不存在。

function customizer(objValue, srcValue) {
    if (_.isArray(objValue)) {
        return objValue.concat(srcValue);
    }
}
var json1 = {
    'a': [
        {'b': 2}
    ]
};

var json2 = {
    'a': [
        {'b': 2},
        {'h': 25}
    ]
};
console.log(_.mergeWith(json1, json2, customizer));

结果:

{
    a: [{b: 2}, {b: 2}, {h: 25}]
}

预期结果:

{
    a: [{b: 2}, {h: 25}]
}

我正在使用lodash进行操作,但结果不是我想要的。

你有什么想法吗?谢谢

1 个答案:

答案 0 :(得分:0)

您可以使用Set

function customizer(objValue, srcValue) {
    if (_.isArray(objValue)) {
        return objValue.concat(srcValue);
    }
}
var json1 = {
    'a': [
        {'b': 2}
    ]
};

var json2 = {
    'a': [
        {'b': 2},
        {'h': 25}
    ]
};
var a=_.mergeWith(json1, json2, customizer);
console.log(new Set([...a]))