【发布时间】:2016-05-01 04:07:22
【问题描述】:
我有两个具有以下结构的对象并尝试将它们合并在一起。
我用 $.merge 尝试过,但不是预期的结果。
对象 1 - 没有所有属性
{
"id": 23,
"name": "Article",
"related": 15 "items": [{
"name": "Test1",
"items": [{
"name": "Test2",
"items": [{
"name": "Test3",
"items": [{
"name": "Test4",
"items": [{
"name": "Test5",
"items": [{
"name": "Test6",
}]
}]
}]
}]
}]
}]
}, {
"id": 24…
}
对象 2 - 具有附加属性
{
"id": 23,
"name": "Article",
"related": 15 "items": [{
"name": "Test1",
"id": 34 "items": [{
"name": "Test2",
"id": 57 "items": [{
"name": "Test3",
"id": 92 "items": [{
"name": "THIS ONE IS NOT EXISTING IN OBJECT 1 AND SHOULD NOT GET MERGED",
"id": 789
}, {
"name": "Test4",
"id": 12 "items": [{
"name": "Test5",
"id": 321 "items": [{
"name": "Test6",
"id": 285
}]
}]
}]
}]
}]
}]
}, {
"id": 24…
}
有人知道一些聪明的技巧吗? jQuery 甚至是必要的吗?
【问题讨论】:
-
不需要 jquery,你需要 1 或 2 个 for 循环和一个递归函数。
-
@nem:“此功能是非标准的,不在标准轨道上。请勿在面向 Web 的生产站点上使用它”。有史以来最好的提示
-
不清楚你要求什么。对象 2 已经是对象 1 和对象 2 的合并,因此只需使用对象 2 即可。也许你的意思是当两者都有“新事物”时?
-
@pid 我有对象,其中一个具有不同的附加属性。合并的对象应该包含这些。
-
你意识到你给出的例子不是一个好例子吗?当两者都具有新属性时,它是不必要的麻烦并且不显示一般情况。此外,您是否意识到您可以有碰撞?如果两者都用不同的值重新定义相同的属性,你会选择哪一个?通常情况下,无法处理冲突,应该抛出异常。
标签: javascript jquery object merge