Javascript 当对象的属性值位于另一个数组中时,如何从数组中删除对象?

Javascript 当对象的属性值位于另一个数组中时,如何从数组中删除对象?,javascript,arrays,filter,Javascript,Arrays,Filter,我有一个ID为的数组: const idsArr = [1,2,3] 我还有一个包含对象的数组,如下所示: const arrOfObj = [ {id: 1, name: 'a'}, {id: 2, name: 'b'}, {id: 3, name: 'c'}, {id: 4, name: 'd'}, {id: 5, name: 'e'}, ] 如何筛选arrOfObj并仅获取id值未包含在idsArr中的对象 预期结果: [ {id: 4, name:

我有一个ID为的数组:

const idsArr = [1,2,3]
我还有一个包含对象的数组,如下所示:

const arrOfObj = [
  {id: 1, name: 'a'},
  {id: 2, name: 'b'},
  {id: 3, name: 'c'},
  {id: 4, name: 'd'},
  {id: 5, name: 'e'},
]
如何筛选
arrOfObj
并仅获取
id
值未包含在
idsArr
中的对象

预期结果:

[     
  {id: 4, name: 'd'},
  {id: 5, name: 'e'}
]
创建一个集合(以提高效率),然后。。。过滤器:

const arrOfObj=[{id:1,名称:'a'},{id:2,名称:'b'},{id:3,名称:'c'},{id:4,名称:'d'},{id:5,名称:'e'},];
设集合=新集合([1,2,3]);
让result=arrOfObj.filter(({id})=>!set.has(id));

控制台日志(结果)如果您知道数组方法,那么它非常简单

可以这样做

function filterArrayWithId(arrOfObj, idsArr) {
  arrOfObj.filter(obj => !idsArr.includes(obj.id))
}
对任何疑问发表评论

arrOfObj.filter((o)=>!idsArr.includes(o.id))
function filterArrayWithId(arrOfObj, idsArr) {
  arrOfObj.filter(obj => !idsArr.includes(obj.id))
}