【发布时间】:2012-02-26 10:11:58
【问题描述】:
jsfiddle 链接:http://jsfiddle.net/vN6fn/1/
假设我有这两个对象:
var obj1 = { data: [
{id:1, comment:"comment1"},
{id:2, comment:"comment2"},
{id:3, comment:"comment3"}
] }
var obj2 = { data: [
{id:2, comment:"comment2"},
{id:3, comment:"comment3"},
{id:4, comment:"comment4"}
] }
最终的对象应该是这样的:
var final = { data: [
{id:1, comment:"comment1"},
{id:2, comment:"comment2"},
{id:3, comment:"comment3"},
{id:4, comment:"comment4"}
] }
以下是一些需要考虑的事项:
- obj1 和 obj2 可能有也可能没有重复
$.extend() 替换对象,$.merge() 不删除重复项(我知道我可以执行 for 循环,但我正在寻找更好的方法来执行此操作)。
【问题讨论】:
-
不会保留顺序均值 (3, 4, 5, 1, 2),因为对象 1 是第一个?
-
对不起,我可以更改对象的编号。
-
@shershames 嗯,这并没有消除我的困惑。你这是什么意思?
-
没有某种循环就无法做到这一点。这个问题也可能是stackoverflow.com/questions/3629817/…的重复
-
@sgarrett:但问题是,事实上,“如何合并两个数组”,ergo,可能是上述问题的重复。也许OP并不完全确定如何解决这个问题。我刚刚进行了搜索,然后出现了一个标题几乎相同的问题。物有所值。
标签: javascript jquery json