2017-05-31 107 views
1

我在nodejs中實現了長輪詢,並且在每次請求後,google api都發送複雜的json對象。我如何快速找到現在查詢的資源與前一個資源的區別。這樣我可以獲得最新資源並執行我的操作。如何找到兩個複雜的json對象之間的區別?

[ 
    { kind: 'y', 
    etag: 'some etag', 
    id: '1', 
    snippet: 
    { videoId: 'vid1', 
     top: [Object], 
     isPublic: true } }, 
    { kind: 'y', 
    etag: 'Some Etag', 
    id: '2', 
    snippet: 
    { videoId: vid, 
     top: [Object], 
     isPublic: true } 
    } 
] 

這是數據api的樣本響應。正如你所看到的,該數組有兩個對象。現在,假設我在5分鐘後再次請求api,那麼api返回一個包含三個對象的數組。對於這個例子,假設它包含一個新的和上面提到的兩個。現在,我如何提取新的。

我的問題的核心是說數組表示一個具有三個元素的集合,另一個具有兩個元素。 A和B分別。我如何找到A - B.

回答

-1

更新根據問題更新。 假設你有以下數據結構:

const oldData = [ 
    { 
    kind: 'y', 
    etag: 'some etag', 
    id: '1', 
    snippet: { 
     videoId: 'vid1', 
     top: [Object], 
     isPublic: true 
    } 
    }, 
    { 
    kind: 'y', 
    etag: 'Some Etag', 
    id: '2', 
    snippet: { 
     videoId: vid, 
     top: [Object], 
     isPublic: true 
    } 
    } 
]; 

你獲得了一些newData,我想我們需要使用ES5陣列方法filtersome它去簡單的過濾器::

const reallyNewData = newData.filter(item => { 
    return !oldData.some(el => el.id === item.id); 
}); 

所以基本上。

+0

但是,我如何提取兩個對象類似設置差異之間的變化。 – uman

+0

@uman顯示示例對象。 – Lazyexpert

+0

我已經使用一些示例對象編輯了上面的帖子。 – uman