参考 数组对象去重
数据如下:
[{ name: 'zs', age: 15 }, { name: 'lisi' }, { name: 'zs' }]
想要将 name 为 zs 的数据去重,优先保留第一条相同数据
解决方法
reduce 去重
let hash = {}
function unique(arr, initialValue) {
return arr.reduce(function (previousValue, currentValue, index, array) {
hash[currentValue.name] ? '' : (hash[currentValue.name] = true && previousValue.push(currentValue))
return previousValue
}, initialValue)
}
const uniqueArr = unique([{ name: 'zs', age: 15 }, { name: 'lisi' }, { name: 'zs' }], [])
console.log(uniqueArr) // uniqueArr.length == 2