对象数组去重

方法一:

数组的reduce()方法

let hash = {};
data = data.reduce((preVal, curVal) => {
hash[curVal.id] ? '' : hash[curVal.id] = true && preVal.push(curVal);
return preVal
}, [])

方法二:

for循环遍历

function removeRepeat(arr, key){
for(let i = 0; i < arr.length; i++) {
for(let j = i+1; j < arr.length; j++) {
if(arr[i][key] === arr[j][key]){
arr.splice(j, 1);
j = j-1; // 关键,因为splice()删除元素之后,会使得数组长度减小,此时如果没有j=j-1的话,会导致相同id项在重复两次以上之后无法进行去重,且会错误删除id没有重复的项。
}
}
}
}
removeRepeat(data, 'id');

原文地址:https://www.cnblogs.com/liuerpeng/p/10953999.html