我有兩個數組,舊的和新的,它們在每個位置都有對象。我將如何同步或找到增量(即什麼是新的,更新和新的陣列中刪除較舊的陣列)JavaScript同步兩個數組(對象)/查找增量
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"}
];
通過上述數據,使用ID作爲關鍵,我們會發現, id = 2的項目有更新的標題,id = 3的項目被刪除,id = 4的項目是新的。
是否有一個現有的庫,有有用的功能,或者它是一個循環和內部循環的情況下,比較每一行..例如。
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
}
}
做這種比較三次,找到新的,更新和刪除?
你可以加快速度一點,如果ID是唯一的,你使用一個對象與ID作爲關鍵。 – Sirko 2013-02-19 20:03:16
你應該解釋什麼是輸出?具有三個屬性的對象? '{added:4],changed:[2],deleted:[3]}' – 2013-02-19 20:05:32
輸出可能是三個陣列中最好的。刪除將只需要ID,添加和更改將需要完整的「行」/對象 – Fergal 2013-02-19 20:07:40