JavaScript synchronizuje dwie tablice (obiektów) / znajdź deltę
Mam dwie tablice, stare i nowe, które trzymają obiekty w każdej pozycji. Jak zsynchronizować lub znaleźć deltę (tj. Co jest nowe, zaktualizowane i usunięte z nowej tablicy w porównaniu do starej tablicy)
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"}
];
Z powyższymi danymi, używając id jako klucza, stwierdzilibyśmy, że element o id = 2 ma zaktualizowany tytuł, element o id = 3 jest usunięty, a element o id = 4 jest nowy.
Czy istnieje istniejąca biblioteka, która ma użyteczne funkcje, czy też jest to przypadek pętli i wewnętrznej pętli, porównaj każdy wiersz… np.
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
}
}
Dokonaj tego rodzaju porównania trzy razy, aby znaleźć nowe, zaktualizowane i usunięte?