Ich habe zwei Arrays, alte und neue, die Objekte an jeder Position halten. Wie würde ich synchronisieren oder das Delta finden (also das, was neu ist, aktualisiert und von dem neuen Array gelöscht gegenüber dem alten Array)JavaScript sync zwei Arrays (von Objekten)/Delta finden
var o = [
{id:1, title:"title 1", type:"foo"},
{id:2, title:"title 2", type:"foo"},
{id:3, title:"title 3", type:"foo"}
];
var n = [
{id:1, title:"title 1", type:"foo"},
{id:2, title:"title updated", type:"foo"},
{id:4, title:"title 4", type:"foo"}
];
Mit den obigen Daten-ID als Schlüssel, würden wir feststellen, dass Item mit ID = 2 hat einen aktualisierten Titel, Item mit ID = 3 wird gelöscht und Item mit ID = 4 ist neu.
Gibt es dort eine vorhandene Bibliothek, die nützliche Funktionen hat, oder ist es ein Fall von Schleife und innerer Schleife, vergleiche jede Zeile ... z.
for(var i=0, l=o.length; i<l; i++)
{
for(var x=0, ln=n.length; x<ln; x++)
{
//compare when o[i].id == n[x].id
}
}
Machen Sie diese Art von Vergleich dreimal, um neue, aktualisierte und gelöschte zu finden?
Sie die Dinge beschleunigen könnte ein wenig, wenn die IDs eindeutig sind und Sie ein Objekt mit dem id als Schlüssel. – Sirko
Sie sollten erklären, was die Ausgabe ist? Ein Objekt mit drei Eigenschaften? '{hinzugefügt: 4], geändert: [2], gelöscht: [3]}' –
Die Ausgabe wäre wahrscheinlich in drei Arrays am besten. Die gelöschten müssten nur IDs, hinzugefügt und geändert würde die vollständige "Zeile"/Objekt – Fergal