对象数组去重

方法一:

// ES6对象数组所有属性去重,筛选每个数组项的字符
function unique(arr) {
  const map = new Map()
  return arr.filter( item => !map.has(JSON.stringify(item)) && map.set(JSON.stringify(item), 1))
}
// 或
function unique(arr) {
  return [...new Set(arr.map(e => JSON.stringify(e)))].map(e => JSON.parse(e))
}

方法二:

// ES6根据一维对象数组某个属性去重且该属性的值为简单数据类型,比较实用的一种的方法,也基本没有什么性能影响
function unique(arr, key) {
  const map = new Map()
  return arr.filter((item) => !map.has(item[key] + '') && map.set(item[key] + '', 1))
}

.

原文地址:https://www.cnblogs.com/crazycode2/p/13345564.html