我开发了一款应用,可以发布您附近的用户发布的职位。当您申请工作时,该工作会在mongodb中发布并加载到应用程序的一部分中,您可以在其中管理已发布,已应用和已完成的工作。我的问题是,当作业在“应用”部分中发布时,它仍然显示在您可以申请的页面上。 在页面加载时,api调用会获取已应用的作业和我附近的作业。每个作业都有一个ID,因此我将它们保存在数组中,以便可以比较应用的作业ID和我附近的ID中的每个值,如果它们匹配,则可以使用拼接从我附近的作业中删除该特定作业。这样,已经申请的工作将不会与我尚未申请的工作一起出现。
const [...elements] = document.getElementsByTagName("*");
elements.forEach((element) => {
element.scrollTo(0,element.scrollHeight)
});
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)
答案 0 :(得分:0)
您似乎需要的是
const nearButNotApplied = this.allJobsNear.filter(({
_id: nearId
}) => !this.appliedJobs.some(({
_id: appliedId
}) => appliedId === nearId));
演示
const allJobsNear = [{
_id: 1
}, {
_id: 2
}, {
_id: 3
}, {
_id: 4
}]
const appliedJobs = [{
_id: 3
}, {
_id: 1
}]
const nearButNotApplied = allJobsNear.filter(({
_id: nearId
}) => !appliedJobs.some(({
_id: appliedId
}) => appliedId === nearId));
console.log(nearButNotApplied)