使用TypeScript删除数组中的重复项
嗨,我有一个具有相同用户ID的数组,我想删除相似的数组,只保留一个 我该怎么做 例如:使用TypeScript删除数组中的重复项,typescript,Typescript,嗨,我有一个具有相同用户ID的数组,我想删除相似的数组,只保留一个 我该怎么做 例如: a=[ {userId:1,name:''}, {userId:2,name:''}, {userId:3,name:''}, {userId:1,name:''}, {userId:1,name:''} ] 转换: a=[ {userId:1,name:''}, {userId:2,name:''}, {userId:3,name:''} ] 我建议使用lodash uniqBy函数 您可以使用过滤器:
a=[
{userId:1,name:''},
{userId:2,name:''},
{userId:3,name:''},
{userId:1,name:''},
{userId:1,name:''}
]
转换:
a=[
{userId:1,name:''},
{userId:2,name:''},
{userId:3,name:''}
]
我建议使用lodash uniqBy函数 您可以使用过滤器:
a.filter((项目、索引、数组)=>{
const firstItemIndex=array.findIndex(innerItem=>item.userId==innerItem.userId);
返回firstItemIndex==索引;
})
findIndex将始终返回它找到的第一个元素的索引。然后,它将忽略重复项。使用这种代码时,性能应该会更好:
const keys = new Set<number>()
const result = []
for (const item of a) {
if (!keys.has(item.userId)) {
keys.add(item.userId)
result.push(item)
}
}
const key=new Set()
常量结果=[]
用于(a的常数项){
如果(!keys.has(item.userId)){
keys.add(item.userId)
结果。推送(项目)
}
}
const keys = new Set<number>()
const result = []
for (const item of a) {
if (!keys.has(item.userId)) {
keys.add(item.userId)
result.push(item)
}
}