var array = [
{ id: 1, name: "张三"},
{ id: 2, name: "李四"},
{ id: 3, name: "张龙"},
{ id: 4, name: "赵虎"},
{ id: 5, name: "王朝"},
{ id: 1, name: "刘金刚"},
{ id: 6, name: "马汉"},
]
var obj = {};
/*
* 方法一 reduce函数
* 按照id 相同进行去重
*/
array = array.reduce(function (item, next) {
obj[next.id] ? '' : obj[next.id] = true && item.push(next);
return item;
}, []);
console.log(array) // 去重后数组
/*
* 方法二 es6写法
* 按照传入属性 进行去重
*/
var array2 = [
{ id: 1, name: "张三"},
{ id: 2, name: "李四"},
{ id: 3, name: "张龙"},
{ id: 4, name: "赵虎"},
{ id: 5, name: "王朝"},
{ id: 1, name: "刘金刚"},
{ id: 6, name: "马汉"},
]
/**
* arr:要去重的数组
* attr: 去重根据的属性
*/
function unique(arr, attr) {
const res = new Map();
return arr.filter((item) => {
var attrItem = item[attr]
return !res.has(attrItem) && res.set(attrItem, 1)
})
}
console.log(unique(array2, "id")) // 去重后数组
本文转载自: https://blog.csdn.net/ys_healone/article/details/108491319