So verbinden Sie zwei arrays in JSON-Objekte - entfernen von Duplikaten und der Erhaltung der Reihenfolge, in Javascript/jQuery?

jsfiddle link: http://jsfiddle.net/vN6fn/1/

Nehme an, ich habe diese 2 Objekte:

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"}
                   ] }

Und Letzte Objekt sollte wie folgt Aussehen:

var final = { data: [ 
                      {id:1, comment:"comment1"},
                      {id:2, comment:"comment2"},
                      {id:3, comment:"comment3"},
                      {id:4, comment:"comment4"}
                   ] }

Hier sind einige Dinge zu beachten:

  • obj1 und obj2 können oder können keine Duplikate

$.extend() ersetzt Objekte, $.merge() nicht Duplikate entfernen (ich weiß, ich kann tun, for-Schleife, aber ich bin auf der Suche nach einem besseren Weg, dies zu tun).

  • Wäre nicht die Erhaltung der Ordnung bedeuten ( 3, 4, 5, 1, 2 ), da Objekt 1 ist der erste?
  • sorry, Sie zu verwirren, ändern kann ich die Nummerierung der Objekte.
  • Hm, das hat nicht klar meine Verwirrung. Was meinst du damit?
  • Es gibt keine Möglichkeit, dies zu tun, ohne irgendeine Art von Schleife. Diese Frage kann auch ein Duplikat von stackoverflow.com/questions/3629817/...
  • Ich aktualisiert die Frage. Lassen Sie mich wissen, wenn es immer noch nicht sinnvoll.
  • Es gibt keinen Weg, dies zu tun, ohne Ihre eigene Schleife, da {} !== {}.
  • Union des arrays und der union der Objekte ist nicht das gleiche. Der Frage Titel ist vielleicht besser angegeben als "Zusammenführen zweier JSON-Objekte - entfernen von Duplikaten und der Erhaltung der Reihenfolge, in Javascript/jQuery?"
  • Die Frage ist aber, in der Tat, "Zusammenführen zweier arrays," ergo, kann ein Duplikat des oben genannten Frage. Vielleicht die OP ist nicht ganz sicher, wie dieses problem anzugehen. Ich habe gerade eine Suche und eine Frage mit einer fast gleichwertigen Titel kam. Nehmen Sie es für was es Wert ist.
  • bearbeitet den Titel. Dank

InformationsquelleAutor Sherzod | 2012-02-03
Schreibe einen Kommentar