普通的数组去重可以使用:
arr = [...new Set(arr)]
在对象数组中该方法会失效,这里记录两种快速进行对象数组去重方式:
1.对象转JSON
将对象转为JSON去重后再转回对象,是非常方便的一个方法:
arr = [...new Set(arr.map(i => JSON.stringify(i)))].map(i => JSON.parse(i))
一行就可以解决
2.reduce
使用数组提供的reduce方法可以进行手动去重:
const distinct = (arr) => {
let result = []
let obj = {}
arr.reduce((pre, cur) => {
obj[cur.id] ? '' : obj[cur.id] = true && result.push(cur);
});
return result;
}