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?

questionAnswers(2)

yourAnswerToTheQuestion