1. new Map() 数组去重
let arr = [
{
"name": "123",
"Id": "11",
"State": 2
},
{
"name": "123",
"Id": "11",
"State": 2
}, {
"name": "789",
"Id": "22",
"State": 1
}]
function repeat(arr) {
const res = new Map();
return arr.filter(v=>{
return !res.has(v.Id) && res.set(v.Id,1);
})
}
var list = repeat(arr);
console.log(list );
2. reduce 去重
oldarr=[ {id:1, name:'user1'}, {id:3, name:'user2'}, {id:2, name:'user1'}, {id:3, name:'user2'} ]
function arrRemoveRepet(oldarr) {
let newArr = [];
const obj = {};
newArr = oldarr.reduce(function(prev, cur) {
obj[cur.name] ? '' : (obj[cur.name] = true && prev.push(cur)); return prev; }, []);
return newArr;
}
返回结果为 [ {id:1, name:'user1'}, {id:3, name:'user2'} ]