数组对象去重

132 阅读1分钟

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'} ]