所以我有这样的场景,我有一个客户端应用程序它发送数据(对象数组)到服务器,然后将数据转发到其他客户连接到这台服务器。JavaScript数组和对象:获得差异,合并它们
在客户端应用程序,该数据是不断变化的,意思是:值的变化,在阵列内的新对象弹出,被删除的对象,等等...
现在我想的其他客户端总是收到最新的数据。而且因为我不想让客户端应用程序只是推全新的数据,然后到其他客户转发全新的数据服务器,我决定让客户端应用程序只推变化(使用此库:https://www.npmjs.com/package/deep-object-diff)。
的其他客户然后接收对象的数组,只有已实际上改变因为他们知道以前的数据阵列,我希望他们能“合并”变化的阵列与旧的数据对象的数据。
我的实际问题是合并。我不知道如何正确地做到这一点。特别是如果我有一个对象的数组没有任何关键的对象。
所以我的数据看起来是这样的:
let data = [
{
name: 'Peter',
age: 26,
sID: 546589995544
},
{
name: 'John',
age: 33,
sID: 554589525469
}
];
其实还有更多,但很好,这就是结构。
因此,如果比较库说,这是改变:
let changes = {
{
age: 34,
sID: 554589525469
}
};
(请注意,我现在有对象的对象,而不是对象的数组那是什么的DIFF库的回报。)
我想合并的对象是
[
{
name: 'Peter',
age: 26,
sID: 546589995544
},
{
name: 'John',
age: 34,
sID: 554589525469
}
];
(约翰现在是一岁)
所以我完全相信,如果我将对象的关键字作为标识符,这会容易得多,但我仍然认为必须为此场景提供解决方案。正如你所看到的,财产可以作为一个标识符,它只是一个关键。
我会apprectiate如果有人能指出如何做,在这两种情况下(有和没有对象特定键)
合并相同ID的数据见https://stackoverflow.com/help/mcve – guest271314
现在你的问题的代码无效... –