去重方法封装(vue中使用),其中arr传要去重的数组,name为需要去重的字段
arrayUnique(arr, name) {
let hash = {}
return arr.reduce( (acc, cru, index) => {
if ( !hash[cru[name]] ) {
hash[cru[name]] = {index:acc.length}
acc.push(cru)
}else{
acc.splice( hash[cru[name]]['index'], 1, cru)
}
return acc;
}, [])
}
使用
例如:要去重的数组为:
dataArray: [
{date: '2022-09-20', value: '1次'},
{date: '2022-09-20', value: '2次'},
{date: '2022-09-20', value: '3次'}
]
let arr = []
arr = this.arrayUnique(this.dataArray, 'date')// [{date: '2022-09-20', value: '3次'}]