Ila*_*rio 5 javascript arrays ecmascript-6
我有两大类对象,如:
const array1 = [
{
userId: 83232932,
name: 'Tom',
profile_pic: 'http://..',
age: 24,
gender: 'F'
},
{
userId: 2413535,
name: 'Sam',
profile_pic: 'http://..',
age: 31,
gender: 'M'
}
]
Run Code Online (Sandbox Code Playgroud)
和另一个几乎相同的阵列.
这两个数组也可以有数千个对象,例如20k.
我必须比较它们并找到第一个数组中的对象而不是第二个数组中的对象
现在我在做:
const missing = array1.filter(function(item1) {
return !array2.some(function(item2) {
return item1.userId === item2.userId;
});
});
Run Code Online (Sandbox Code Playgroud)
这可行,但它会阻止我的应用程序的UI几秒钟.
有没有更好的方法来过滤数组,还是应该检查如何以及何时进行此比较?
你可以采取Set并检查过滤第一个数组.
const
ids = new Set(array2.map(({ id }) => id)),
missing = array1.filter(({ id }) => !ids.has(id));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
127 次 |
| 最近记录: |