小功能:根据特定key去除数组对象中的重复值
talk is cheap, show me the code.
var friends=[
{
id:1,
name:'Alicy',
gender:2
},
{
id:2,
name:'Tom',
gender:1
},
{
id:3,
name:'Anna',
gender:2
},
{
id:1,
name:'Alicy',
gender:2
},
{
id:4,
name:'Anna',
gender:2
}
]
const uniqueObjBy=function(key){
//对key进行去重
return function(arr){
return arr.reduce((ret,a)=>{
const found=ret.find((item)=>item[key]===a[key])
if(!found){
ret.push(a)
}
return ret
},[])
}
}
const uniqueObjById=uniqueObjBy('id')
const uniqueObjByName=uniqueObjBy('name')
const log=console.log
log(uniqueObjById(friends))//去除重复id的,剩下id:1,2,3,4的对象
log(uniqueObjByName(friends))//去除同名的,剩下name:Alicy,Tom,Anna的对象