我有两个大的对象数组,如下:
const array1 = [
{
userId: 83232932,
name: 'Tom',
profile_pic: 'http://..',
age: 24,
gender: 'F'
},
{
userId: 2413535,
name: 'Sam',
profile_pic: 'http://..',
age: 31,
gender: 'M'
}
]
还有一个几乎相等的数组。
这两个数组也可能有数千个对象,例如20k。
我需要比较它们并找到在第一个数组中但不在第二个数组中的对象。
现在我的做法是:
const missing = array1.filter(function(item1) {
return !array2.some(function(item2) {
return item1.userId === item2.userId;
});
});
这种方法可以实现,但会导致我的应用程序在几秒钟内卡顿。
有更好的过滤数组的方法吗?或者我应该检查如何以及何时进行此比较?