连接JS对象

时间:2016-07-21 09:35:12

标签: javascript object

我有两个对象,如下面的

var data = {
        site_name: "my_site",
        page_id: "page_name",
        city: "New York",
        region_code: "NY",
        country_code: "US"
     },
     user_data = {
        user: "user_name",
        conversion_rate: 1.25
     };

我想将这两个对象连接起来,如下所示

user_data = {
     user: "user_name",
     conversion_rate: 1.25,
     site_name: "my_site",
     page_id: "page_name",
     city: "New York",
     region_code: "NY",
     country_code: "US"
 };

我通过检查typeof user_data.key来循环第二次来做到了....它解决了我的问题,但我的好奇心是在没有以优化方式循环的情况下完成它。您的任何建议将不胜感激。

3 个答案:

答案 0 :(得分:3)

您可以使用ES6的Object.assign

var combined = Object.assign({}, data, user_data);

甚至:

Object.assign(user_data, data); // this will change `user_data`

答案 1 :(得分:1)

如果您可以使用Babel,只需在对象上使用spread运算符:

var data = {
   site_name: "my_site",
   page_id: "page_name",
   city: "New York",
   region_code: "NY",
   country_code: "US"
},
user_data = {
   user: "user_name",
   conversion_rate: 1.25
};

var combined = {
  ...data,
  ...user_data
};

console.log(combined);

请参阅the demo

"传播属性"仍处于提案阶段2,但您可以use it with Babel 请参阅here有关此功能的更多详细信息。

答案 2 :(得分:-1)

这适用于所有浏览器的示例:

data=JSON.stringify(data);
user_data=JSON.stringify(user_data);
user_data=user_data.replace("}",data.replace("{",","));
user_data=JSON.parse(user_data);