是一种常见的数据处理技术,它可以有效减少数据中的重复项,使得数据更加简洁有序。去重的方法有很多,常见的有使用Set、filter、reduce等方法,下面我们就来看看这几种方法的使用方法。
使用Set方法可以很容易的实现,它可以将数组中的重复项去掉,只保留唯一的元素,具体使用方法如下:
let array = [{name: 'zhangsan', age: 20}, {name: 'lisi', age: 20}, {name: 'wangwu', age: 30}, {name: 'zhangsan', age: 20}];
let result = Array.from(new Set(array));
console.log(result); // [{name: 'zhangsan', age: 20}, {name: 'lisi', age: 20}, {name: 'wangwu', age: 30}]
使用filter方法也可以实现,它可以根据指定的条件过滤掉重复的元素,具体使用方法如下:
let array = [{name: 'zhangsan', age: 20}, {name: 'lisi', age: 20}, {name: 'wangwu', age: 30}, {name: 'zhangsan', age: 20}];
let result = array.filter((item, index, arr) => {
return index === arr.findIndex(t => (t.name === item.name && t.age === item.age));
});
console.log(result); // [{name: 'zhangsan', age: 20}, {name: 'lisi', age: 20}, {name: 'wangwu', age: 30}]
使用reduce方法也可以实现,它可以通过指定的规则将重复的元素过滤掉,具体使用方法如下:
let array = [{name: 'zhangsan', age: 20}, {name: 'lisi', age: 20}, {name: 'wangwu', age: 30}, {name: 'zhangsan', age: 20}];
let result = array.reduce((pre, cur) => {
let exist = pre.find(item => (item.name === cur.name && item.age === cur.age));
if (!exist) {
pre.push(cur);
}
return pre;
}, []);
console.log(result); // [{name: 'zhangsan', age: 20}, {name: 'lisi', age: 20}, {name: 'wangwu', age: 30}]
以上就是的几种常用方法,可以根据实际需要选择合适的方法进行使用,以达到更好的数据处理效果。