如何合并具有相同属性名称的两个对象

时间:2017-08-31 05:55:36

标签: javascript

我想将两个对象合并为一个具有相同属性名称的对象。 例如,

var a = {
            "user-activity":{
                "name":"INPUT - radio",
                "value":"radio - No"
            }
        };
var b = {
            "user-activity":{
                "name":"INPUT - radio",
                "value":"radio - No"
            }
        };
var c = a.concat(b);

我期待如下输出。

{
    "user-activity":{
                        "name":"INPUT - radio",
                        "value":"radio - No"
                    },
    "user-activity":{
                        "name":"INPUT - radio",
                        "value":"radio - No"
                    }
};

而不是下面的。

[{
     "user-activity":{
                        "name":"INPUT - radio",
                        "value":"radio - No"
                        }
},{
     "user-activity":{
                        "name":"INPUT - radio",
                        "value":"radio - No"
                        }
}]

2 个答案:

答案 0 :(得分:0)

在对象中具有重复的属性名称是不可能的。 您可能需要重新考虑需要有这样一个解决方案的场景,并找出一些替代解决方案。

答案 1 :(得分:0)

Keys与数据库中的Primary Keys / Unique ID类似,可以进行类比 - 由于它的实现方式,它需要是唯一的。 Keys是重要的东西,它标识了一个值。所有具有hash table数据结构的语言都只是这样。

同样在你的用例中,我猜你需要合并它们,它是相同的值。

您还可以查看此How can I merge properties of two JavaScript objects dynamically?