我在nodejs中实现长轮询,google api在每次请求后发送复杂的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.
答案 0 :(得分:-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
,我会去简单的过滤器::
const reallyNewData = newData.filter( item => {
return !oldData.some(el => el.id === item.id);
});