JS数组内含有对象去重方法!!
// 模拟假数据
let testArr = [{
id: 1,
name: '张三'
},
{
id: 2,
name: '李四'
},
{
id: 3,
name: 'Tom'
},
{
id: 4,
name: 'Jerry'
},
{
id: 5,
name: '张三'
},
{
id: 1,
name: '张三'
}
]
/**
* @param { Array } arr 需要操作的数组
* @param { String } key 去重的目标属性
*/
// 利用数组reduce方法比对每一项
const removeRepeat = (arr, key) => {
let obj = {}
arr = arr.reduce((pre, next) => {
obj[next[key]] ? '' : obj[next[key]] = true && pre.push(next)
return pre
}, [])
return arr
}
// 根据name属性去重
let nameArr = removeRepeat(testArr, 'name')
console.log(nameArr);
// 根据id属性去重
let idArr = removeRepeat(testArr, 'id')
console.log(idArr);
下面附上处理结果
1.根据name去重
2.根据id去重