Javascript 如何删除数组中的匹配元素?

Javascript 如何删除数组中的匹配元素?,javascript,Javascript,我开发了一个应用程序,可以发布你附近的用户发布的作业。当您申请作业时,该作业将在mongodb中发布并加载到应用程序的某个部分,您可以在该部分管理已发布、已应用和已完成的作业。我遇到的问题是,当这份工作发布在“申请”部分时,它仍然会显示在您可以申请的页面中。 在页面加载时,api调用获取应用的作业和我附近的作业。每个作业都有一个id,因此我将它们保存在数组中,这样我就可以比较应用的作业id和我附近的作业id中的每个值,如果它们匹配,我将使用splice从我附近的作业中删除该特定作业。所以已经申请

我开发了一个应用程序,可以发布你附近的用户发布的作业。当您申请作业时,该作业将在mongodb中发布并加载到应用程序的某个部分,您可以在该部分管理已发布、已应用和已完成的作业。我遇到的问题是,当这份工作发布在“申请”部分时,它仍然会显示在您可以申请的页面中。 在页面加载时,api调用获取应用的作业和我附近的作业。每个作业都有一个id,因此我将它们保存在数组中,这样我就可以比较应用的作业id和我附近的作业id中的每个值,如果它们匹配,我将使用splice从我附近的作业中删除该特定作业。所以已经申请的工作不会出现在我还没有申请的工作中

 let jobsN = this.allJobsNear;
 let appliedId = [];
 let jobsNearId = [];
 for(let i=0; i<jobsN.length; i++){

   jobsNearId.push(this.allJobsNear[i]._id)

 }
 for(let i=0; i<applied.length; i++){

   appliedId.push(this.appliedJobs[i]._id)

 }
 console.log(jobsNearId)
 console.log(appliedId)
jobsNearId.filter(el,i)=>{
  if(el === appliedId[i]){
    return i;
  }
}) 

        this.allJobsNear.splice(i,1)

你似乎需要的是

const nearButNotApplied=this.allJobsNear.filter{ _id:nearId } => !这是一些{ _id:appliedId }=>appliedId===nearId; 演示

常量allJobsNear=[{ _身份证号码:1 }, { _身份证号码:2 }, { _身份证号码:3 }, { _身份证号码:4 }] 常量appliedJobs=[{ _身份证号码:3 }, { _身份证号码:1 }] 常数nearButNotApplied=allJobsNear.filter{ _id:nearId } => !一些{ _id:appliedId }=>appliedId===nearId;
console.lognearbutnotapplied能否给出输入和预期输出的具体示例?具体程度如何??我不理解你的问题。请给我们一个示例数组,以及将代码应用到该示例数组的预期输出。this.allJobsNear将是什么?结果将是什么?应用了什么?示例代码中还有语法错误。请发布真实代码和预期行为。

i is the index, and allJobsNear is an array of objects. So I want to remove all jobs from near me if I've already applied to it.

appliedIds = [1,2,3,4,5,6]
jobsNearMeIds = [9,7,8,1,2,3]

If jobs near me ids have any id from appliedIds, return its index in jobsnearmeid and remove it.