Javascript 如何在reactjs中从数组中删除重复对象

Javascript 如何在reactjs中从数组中删除重复对象,javascript,arrays,reactjs,Javascript,Arrays,Reactjs,我想删除在状态更改时渲染的数组中的重复对象 下面我给出了控制台输出,它有14个对象,其中7个是重复的 我使用了reduce,但是id具有不同的jobid的id也会被删除。。。我必须根据jobid进行筛选,并删除具有相同id的重复对象 appliedCandidate: Array(14) 0: {jobid: "atA3Qi4BJu01VrUasiSX", id: "I1bncvyBsjbu7ePdPvYt", firstName: "Krishnakumar K R", Title: "des

我想删除在状态更改时渲染的数组中的重复对象

下面我给出了控制台输出,它有14个对象,其中7个是重复的

我使用了
reduce
,但是
id
具有不同的
jobid
id也会被删除。。。我必须根据
jobid
进行筛选,并删除具有相同
id
的重复对象

appliedCandidate: Array(14)
0: {jobid: "atA3Qi4BJu01VrUasiSX", id: "I1bncvyBsjbu7ePdPvYt", firstName: "Krishnakumar K R", Title: "design job", empname: "Rakesh", …}
1: {jobid: "atA3Qi4BJu01VrUasiSX", id: "MDxEVS2hKftDrrPXsSWL", firstName: "test Candidate", Title: "design job", empname: "Rakesh", …}
2: {jobid: "atA3Qi4BJu01VrUasiSX", id: "Mmu7oiAoCNcaU2ZWlLeS", firstName: "Rakesh", Title: "design job", empname: "Rakesh", …}
3: {jobid: "atA3Qi4BJu01VrUasiSX", id: "m9SC2DbWxTrlTxJr12p0", firstName: "test user", Title: "design job", empname: "Rakesh", …}
4: {jobid: "nCBNJ1yEn4EaGLR4BHDc", id: "1GMZpFhcOyDSt1KG4abK", firstName: "mohammed basheer", Title: "test job emp", empname: undefined, …}
5: {jobid: "nCBNJ1yEn4EaGLR4BHDc", id: "MDxEVS2hKftDrrPXsSWL", firstName: "test Candidate", Title: "test job emp", empname: undefined, …}
6: {jobid: "nCBNJ1yEn4EaGLR4BHDc", id: "Mmu7oiAoCNcaU2ZWlLeS", firstName: "Rakesh", Title: "test job emp", empname: undefined, …}
7: {jobid: "atA3Qi4BJu01VrUasiSX", id: "I1bncvyBsjbu7ePdPvYt", firstName: "Krishnakumar K R", Title: "design job", empname: "Rakesh", …}
8: {jobid: "atA3Qi4BJu01VrUasiSX", id: "MDxEVS2hKftDrrPXsSWL", firstName: "test Candidate", Title: "design job", empname: "Rakesh", …}
9: {jobid: "atA3Qi4BJu01VrUasiSX", id: "Mmu7oiAoCNcaU2ZWlLeS", firstName: "Rakesh", Title: "design job", empname: "Rakesh", …}
10: {jobid: "atA3Qi4BJu01VrUasiSX", id: "m9SC2DbWxTrlTxJr12p0", firstName: "test user", Title: "design job", empname: "Rakesh", …}
11: {jobid: "nCBNJ1yEn4EaGLR4BHDc", id: "1GMZpFhcOyDSt1KG4abK", firstName: "mohammed basheer", Title: "test job emp", empname: undefined, …}
12: {jobid: "nCBNJ1yEn4EaGLR4BHDc", id: "MDxEVS2hKftDrrPXsSWL", firstName: "test Candidate", Title: "test job emp", empname: undefined, …}
13: {jobid: "nCBNJ1yEn4EaGLR4BHDc", id: "Mmu7oiAoCNcaU2ZWlLeS", firstName: "Rakesh", Title: "test job emp", empname: undefined, …}

通过
jobid
过滤后,您只需从数组中创建一个
map
,它将包含唯一的值

let map = {};
array.map(element => {
 if(!map(element.id)){
  map[element.id] = element;
}
})

在此之后,您可以将值作为
Object.values(map)
。这将包含唯一的元素。

通过
jobid
过滤后,您只需从数组中创建一个
map
,它将包含唯一的值

let map = {};
array.map(element => {
 if(!map(element.id)){
  map[element.id] = element;
}
})

在此之后,您可以将值作为
Object.values(map)
。这将包含唯一的元素。

您只需根据id和jobid组合进行筛选。为此,您可以按jobid对数据进行分组,并在该jobid中进行搜索

const arr=[{jobid:“atA3Qi4BJu01VrUasiSX”,id:“I1bncvyBsjbu7ePdPvYt”,名字:“Krishnakumar K R”,标题:“设计工作”,empname:“Rakesh”},
{jobid:“atA3Qi4BJu01VrUasiSX”,id:“MDxEVS2hKftDrrPXsSWL”,名字:“应试者”,头衔:“设计工作”,empname:“Rakesh”},
{jobid:“atA3Qi4BJu01VrUasiSX”,id:“Mmu7oiAoCNcaU2ZWlLeS”,名字:“Rakesh”,标题:“设计工作”,empname:“Rakesh”},
{jobid:“atA3Qi4BJu01VrUasiSX”,id:“m9SC2DbWxTrlTxJr12p0”,名字:“测试用户”,标题:“设计工作”,empname:“Rakesh”},
{jobid:“nCBNJ1yEn4EaGLR4BHDc”,id:“1GMZpFhcOyDSt1KG4abK”,名字:“mohammed basheer”,标题:“测试作业emp”,empname:未定义},
{jobid:“nCBNJ1yEn4EaGLR4BHDc”,id:“MDxEVS2hKftDrrPXsSWL”,名字:“测试候选人”,头衔:“测试工作环境管理计划”,环境管理计划名称:未定义},
{jobid:“nCBNJ1yEn4EaGLR4BHDc”,id:“Mmu7oiAoCNcaU2ZWlLeS”,名字:“Rakesh”,标题:“测试作业emp”,empname:未定义},
{jobid:“atA3Qi4BJu01VrUasiSX”,id:“I1bncvyBsjbu7ePdPvYt”,名字:“Krishnakumar K R”,标题:“设计工作”,empname:“Rakesh”},
{jobid:“atA3Qi4BJu01VrUasiSX”,id:“MDxEVS2hKftDrrPXsSWL”,名字:“应试者”,头衔:“设计工作”,empname:“Rakesh”},
{jobid:“atA3Qi4BJu01VrUasiSX”,id:“Mmu7oiAoCNcaU2ZWlLeS”,名字:“Rakesh”,标题:“设计工作”,empname:“Rakesh”},
{jobid:“atA3Qi4BJu01VrUasiSX”,id:“m9SC2DbWxTrlTxJr12p0”,名字:“测试用户”,标题:“设计工作”,empname:“Rakesh”},
{jobid:“nCBNJ1yEn4EaGLR4BHDc”,id:“1GMZpFhcOyDSt1KG4abK”,名字:“mohammed basheer”,标题:“测试作业emp”,empname:未定义},
{jobid:“nCBNJ1yEn4EaGLR4BHDc”,id:“MDxEVS2hKftDrrPXsSWL”,名字:“测试候选人”,头衔:“测试工作环境管理计划”,环境管理计划名称:未定义},
{jobid:“nCBNJ1yEn4EaGLR4BHDc”,id:“Mmu7oiAoCNcaU2ZWlLeS”,名字:“Rakesh”,标题:“测试作业emp”,empname:未定义}]
常数温度=arr.reduce((附件,项目)=>{
//日志(item.id,item.jobid);
if(根据[项目作业ID]){
//控制台日志(根据[项目作业ID]);
const idx=acc[item.jobid].findIndex(data=>data.id==item.id);
//console.log(item.jobid,idx)
如果(idx==-1){
acc[item.jobid]。推送(item);
}
}否则{
acc[项目作业ID]=[项目];
}
//控制台日志(acc)
返回acc;
}, {});
设res=[];Object.values(temp.forEach)(item=>res=res.concat(item));

log(res)
您只需根据id和jobid组合进行筛选。为此,您可以按jobid对数据进行分组,并在该jobid中进行搜索

const arr=[{jobid:“atA3Qi4BJu01VrUasiSX”,id:“I1bncvyBsjbu7ePdPvYt”,名字:“Krishnakumar K R”,标题:“设计工作”,empname:“Rakesh”},
{jobid:“atA3Qi4BJu01VrUasiSX”,id:“MDxEVS2hKftDrrPXsSWL”,名字:“应试者”,头衔:“设计工作”,empname:“Rakesh”},
{jobid:“atA3Qi4BJu01VrUasiSX”,id:“Mmu7oiAoCNcaU2ZWlLeS”,名字:“Rakesh”,标题:“设计工作”,empname:“Rakesh”},
{jobid:“atA3Qi4BJu01VrUasiSX”,id:“m9SC2DbWxTrlTxJr12p0”,名字:“测试用户”,标题:“设计工作”,empname:“Rakesh”},
{jobid:“nCBNJ1yEn4EaGLR4BHDc”,id:“1GMZpFhcOyDSt1KG4abK”,名字:“mohammed basheer”,标题:“测试作业emp”,empname:未定义},
{jobid:“nCBNJ1yEn4EaGLR4BHDc”,id:“MDxEVS2hKftDrrPXsSWL”,名字:“测试候选人”,头衔:“测试工作环境管理计划”,环境管理计划名称:未定义},
{jobid:“nCBNJ1yEn4EaGLR4BHDc”,id:“Mmu7oiAoCNcaU2ZWlLeS”,名字:“Rakesh”,标题:“测试作业emp”,empname:未定义},
{jobid:“atA3Qi4BJu01VrUasiSX”,id:“I1bncvyBsjbu7ePdPvYt”,名字:“Krishnakumar K R”,标题:“设计工作”,empname:“Rakesh”},
{jobid:“atA3Qi4BJu01VrUasiSX”,id:“MDxEVS2hKftDrrPXsSWL”,名字:“应试者”,头衔:“设计工作”,empname:“Rakesh”},
{jobid:“atA3Qi4BJu01VrUasiSX”,id:“Mmu7oiAoCNcaU2ZWlLeS”,名字:“Rakesh”,标题:“设计工作”,empname:“Rakesh”},
{jobid:“atA3Qi4BJu01VrUasiSX”,id:“m9SC2DbWxTrlTxJr12p0”,名字:“测试用户”,标题:“设计工作”,empname:“Rakesh”},
{jobid:“nCBNJ1yEn4EaGLR4BHDc”,id:“1GMZpFhcOyDSt1KG4abK”,名字:“mohammed basheer”,标题:“测试作业emp”,empname:未定义},
{jobid:“nCBNJ1yEn4EaGLR4BHDc”,id:“MDxEVS2hKftDrrPXsSWL”,名字:“测试候选人”,头衔:“测试工作环境管理计划”,环境管理计划名称:未定义},
{jobid:“nCBNJ1yEn4EaGLR4BHDc”,id:“Mmu7oiAoCNcaU2ZWlLeS”,名字:“Rakesh”,标题:“测试作业emp”,empname:未定义}]
常数温度=arr.reduce((附件,项目)=>{
//日志(item.id,item.jobid);
if(根据[项目作业ID]){
//控制台日志(根据[项目作业ID]);
const idx=acc[item.jobid].findIndex(data=>data.id==item.id);
//console.log(item.jobid,idx)
如果(idx==-1){
acc[item.jobid]。推送(item);
}
}否则{
acc[项目作业ID]=[项目];
}
//控制台日志(acc)
返回acc;
}, {});
设res=[];Object.values(temp.forEach)(item=>res=res.concat(item));

console.log(res)
希望此oneliner有所帮助

常数a