我有两个对象,如下面的
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
来循环第二次来做到了....它解决了我的问题,但我的好奇心是在没有以优化方式循环的情况下完成它。您的任何建议将不胜感激。
答案 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);