假设我有一个巨大的数组(100K记录)集合可以说(sourceArray
)。我有一个另一个数组的列表(matchIds
)我需要使用从这个sourceArray
过滤。我如何用lodash实现这一目标?或纯JavaScript?如何使用集合作为谓词来过滤数组
var sourceArray = [{
"id": 123,
},
{
"id": 456
},
{
"id": 789
},
{
"id": 111
},
{
"id": 222
},
{
"id": 333
}];
var matchIds = [123, 222];
下面的过滤器只针对单一项目
console.log(
_.filter(sourceArray, function(arr){
return arr.id === 123;
})
);
http://jsbin.com/fegipuwuwa/1/edit?html,js,console
什么我真的希望是arr.id <..in..> matchIds
matchIds将是最大。 20个ID ..只有sourceArray是巨大的(有时100K到150K) – FakirTrappedInCode
@FakirTrappedInCode所以...这将使您从制作超过20个项目的150K索引中总结出3M浪费的操作。 – Redu
谢谢。假设matchIds = [123,222,999,1111],我只返回999,1111。正如我所看到的Iam实际上只对这些不匹配的ID感兴趣,因为我会再调用另一个API来返回这些ID的响应.. – FakirTrappedInCode