我有两个javascript对象,其数据如下:
{
"data": [
{
"foo": "2388163605_10150954953808606",
"bar": {
"xyz": "123",
},
"name": {
"name": [
{
"content": 1,
"data": "some text",
"id": "2388163605"
}
]
},
},
{
"not_the_same": "other values",
"foo": "different",
"bar": {
"xyz": "123",
},
"name": {
"name": [
{
"content": 1,
"data": "some text",
"id": "2388163605"
}
]
},
}]
}
第二个:
{
"data": [
{
"foo": "123+09",
"bar": {
"xyz": "1adad0",
},
},
}]
}
正如您所看到的,属性等有所不同,当然还有值。他们也没有相同数量的物品。我试图像这样合并它们:
$.extend(true,posts, posts_object);
(posts和posts_object包含两个对象)
我想将它们合并到这个:
{
"data": [
{
"foo": "2388163605_10150954953808606",
"bar": {
"xyz": "123",
},
"name": {
"name": [
{
"content": 1,
"data": "some text",
"id": "2388163605"
}
]
},
},
{
"not_the_same": "other values",
"foo": "different",
"bar": {
"xyz": "123",
},
"name": {
"name": [
{
"content": 1,
"data": "some text",
"id": "2388163605"
}
]
},
},
{
"foo": "123+09",
"bar": {
"xyz": "1adad0",
},
},
}]
}
但是,这会导致第二个对象的数据覆盖第一个对象的数据。有没有办法合并它们,而是将第二个对象中的项添加到第一个对象?
答案 0 :(得分:1)
如果通过“添加项目”,则表示您希望第二个对象中 的所有属性但第一个中的不最终被添加到第一个,然后:
var tmp;
$.extend(true, tmp, posts);
$.extend(true, posts, posts_object);
$.extend(true, posts, tmp);
可能会奏效。这一切都取决于你想要的复制语义。