需要去重的数组:
// 原数据是这样的
[{
"goodsId": "1",
"quota": 12,
"skuId": "1"
},
{
"goodsId": "2",
"quota": 12,
"skuId": "2"
},
{
"goodsId": "1",
"quota": 12,
"skuId": "1"
}]
去重方法:
1.使用filter和Map
代码最为简介,运行最快,五星推荐⭐⭐⭐⭐⭐
function uniqueFunc(arr, uniId){
const res = new Map();
return arr.filter((item) => !res.has(item[uniId]) && res.set(item[uniId], 1));
}
2.使用reduce
代码其次,四星推荐⭐⭐⭐⭐
function uniqueFunc2(arr, uniId){
let hash = {}
return arr.reduce((accum,item) => {
hash[item[uniId]] ? '' : hash[item[uniId]] = true && accum.push(item)
return accum
},[])
}
3.使用for循环
最后推荐⭐⭐⭐
function uniqueFunc3(arr, uniId){
let obj = {}
let tempArr = []
for(var i = 0; i<arr.length; i++){
if(!obj[arr[i][uniId]]){
tempArr.push(arr[i])
obj[arr[i][uniId]] = true
}
}
return tempArr
}