数组中对象根据某一属性去重
1 .使用filter和Map
unique1(arr, id){
const res = new Map();
return arr.filter((item) => !res.has(item[id]) && res.set(item[id], 1));
},
2.使用reduce
unique2(arr, id){
let hash = {}
return
arr.reduce((tempArr ,item) => {
hash[item[id]] ?
''
: hash[item[id]] =
true
&& tempArr .push(item)
return
tempArr
},[])
}
3.
使用for循环
unique3(arr, id){
let obj = {}
let tempArr = []
for
(
var
i = 0; i<arr.length; i++){
if(!obj[arr[i][id]]){
tempArr.push(arr[i])
obj[arr[i][id]] = true
}
}
return
tempArr
}
提供三种方法,仅供参考