对象数组去重

方法一:

数组的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');

posted on 2019-05-31 10:43  刘二鹏  阅读(429)  评论(0编辑  收藏  举报