数组对象去重方法笔记记录

5 篇文章 0 订阅
这篇博客介绍了如何在JavaScript中去除数组中重复的对象,重点在于利用`filter()`方法结合`findIndex()`实现基于特定属性的去重。提供了两种去重方法,一种是直接根据指定属性进行去重,另一种是自定义比较函数进行去重。此外,还展示了如何将去重方法扩展到数组原型上。示例中展示了针对包含相同ID但名称不同的对象数组进行去重的操作。
摘要由CSDN通过智能技术生成

项目场景:

提示:数组对象去重(百度的,笔记记录)

var arr=[{id:0, name:'aa'}, {id:0,name:'a1'}, {id:1,name:'aa'}, {id:2,name:'aa'}]
//封装成方法,通过某个属性去重
function filterRepeat(arr,prop){
return arr.filter(function(element,index,self) {
  return self.findIndex(el => el[prop] == element[prop]) === index
})
}
//自定义去重方法
function filterRepeat2(arr,compareFn){
return arr.filter(function(element,index,self){
  return self.findIndex(el=>compareFn(el,element))===index
})
}
//加载到数组原型上
Array.prototype.filterRepeat=function(){
if(typeof arguments[0]=='string')  return filterRepeat(this,arguments[0])
return filterRepeat2(this,arguments[0])
}
var newArr = arr.filterRepeat(function(a, b){return a.id == b.id && a.name == b.name})
console.log(newArr)

# 场景: **id相同名称不同** **id不同名称相同**
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值