在Javascript中合并两个对象

在Javascript中合并两个对象,javascript,Javascript,我有两个JSON,我想在Javascript中添加两个JSON(将JSOB对象加入JSON A) JSON A:- { "data": [{ "id": 1, "subgroup": "1", "power": "2", "grp": "1" }, { "id": 1, "subgroup": "1", "power": "1", "grp": "1"

我有两个JSON,我想在Javascript中添加两个JSON(将JSOB对象加入JSON A)

JSON A:-

{

    "data": [{
        "id": 1,
        "subgroup": "1",
        "power": "2",
        "grp": "1"
    }, {
        "id": 1,
        "subgroup": "1",
        "power": "1",
        "grp": "1"
    }, {
        "id": 2,
        "subgroup": "1",
        "power": "1",
        "grp": "2"
    }, {
        "id": 3,
        "subgroup": "2",
        "power": "1",
        "grp": "2"
    }, {
        "id": 4,
        "subgroup": "1",
        "power": "1",
        "grp": "3"
    }, {
        "id": 5,
        "subgroup": "2",
        "power": "1",
        "grp": "2"
    }, {
        "id": 6,
        "subgroup": "2",
        "power": "1",
        "grp": "1"
    }, {
        "id": 7,
        "subgroup": "1",
        "power": "1",
        "grp": "4"
    }, {
        "id": 1,
        "subgroup": "3",
        "power": "2",
        "grp": "4"
    }

}
JSON B:-

{

    "data": [{
        "id": 1,
        "subgroup": "3",
        "power": "2",
        "grp": "4"
    }, {
        "id": 1,
        "subgroup": "4",
        "power": "1",
        "grp": "3"
    }

}
JSON A和JSON B中的键名称相似。我们可以看到,
subgroup3
subgroup4
分别出现在
GRP4
GRP3
中(查看JSON B)。我想将JSON B中的每个
子组
添加到JSON A中的每个
grp
(除了那些
grp
s子组s已经存在的
s。就像JSON A中有一个带有
subgroup3
grp4
的条目,我们将跳过)。
Id
power
的值将分别相似。因此,我们希望在
grp 1,2,3中添加
子组3
,并在
组1,2,4中添加
子组4
。对于
子组3
power
id
值分别为
2,1
,对于
子组4
power
id
值分别为
1,1

输出的最终JSON应该是

{

    "data": [{
        "id": 1,
        "subgroup": "1",
        "power": "2",
        "grp": "1"
    }, {
        "id": 1,
        "subgroup": "1",
        "power": "1",
        "grp": "1"
    }, {
        "id": 2,
        "subgroup": "1",
        "power": "1",
        "grp": "2"
    }, {
        "id": 3,
        "subgroup": "2",
        "power": "1",
        "grp": "2"
    }, {
        "id": 4,
        "subgroup": "1",
        "power": "1",
        "grp": "3"
    }, {
        "id": 5,
        "subgroup": "2",
        "power": "1",
        "grp": "2"
    }, {
        "id": 6,
        "subgroup": "2",
        "power": "1",
        "grp": "1"
    }, {
        "id": 7,
        "subgroup": "1",
        "power": "1",
        "grp": "4"
    }, {
        "id": 1,
        "subgroup": "3",
        "power": "2",
        "grp": "4"
    }, {
        "id": 1,
        "subgroup": "3",
        "power": "2",
        "grp": "1"
    }, {
        "id": 1,
        "subgroup": "3",
        "power": "2",
        "grp": "2"
    }, {
        "id": 1,
        "subgroup": "3",
        "power": "2",
        "grp": "3"
    }, {
        "id": 1,
        "subgroup": "4",
        "power": "1",
        "grp": "1"
    }, {
        "id": 1,
        "subgroup": "4",
        "power": "1",
        "grp": "2"
    }, {
        "id": 1,
        "subgroup": "4",
        "power": "1",
        "grp": "4"
    }

}
我可以将对象添加到JSON中

var myObj = {
        "id" : id,
        "subgroup" : subgroup,
        "power" : power,
        "grp" : grp

}

从JSON B加入JSON A并跳过
子组
已存在于
grp

JSON中的条目的推荐方法是什么

可以像这样合并对象

ECMAScript 2015(ES6)标准方法

/* For the case in question, you would do: */
Object.assign(obj1, obj2);

/** There's no limit to the number of objects you can merge.
 *  All objects get merged into the first object. 
 *  Only the object in the first argument is mutated and returned.
 *  Later properties overwrite earlier properties with the same name. */
const allRules = Object.assign({}, obj1, obj2, obj3, etc);
有关详细说明,请参见


访问-

StackOverflow不是免费的编码服务。所以我希望你能。请更新您的问题,以显示您已在某个应用程序中尝试过的内容。有关更多信息,请参阅,并记下:)您所说的“添加”是什么意思?加入两个名单?计数还是乘法?这似乎更像是合并而不是相加。你的问题很难理解。写清楚并纠正拼写错误。