记录一次开发过程中的小技巧
在项目开发中数组去重是常用的一个手段,对于一个对象数组我们想依某一个属性或者多个属性为标准来去重又改怎么呢,下面是我在项目中使用的一个小方法:
let arr = [
{
id: '1',
name: 'admin',
code: 'PS202101'
},
{
id: '2',
name: 'admin',
code: 'PS202101'
},
{
id: '3',
name: 'admin3',
code: 'PS202103'
}
]
// 对象型数组去重
const deWeight = (arr, ...arguements) => {
function getBoolean (o, m) {
let list = arguements.map(x => o[x] == m[x])
return list.every(i => i)
}
let result = []
// 总数组与新数组比较,遍历总数组时用新数组的some方法进行判断
arr.map(o => !result.some(m => getBoolean(o, m)) ? result.push(o) : '')
return result
}
// 使用时是这样
let arr2 = deWeight(arr, 'name', 'code')
console.log(arr2)