是一种常见的数据处理技术,它可以有效减少数据中的重复项,使得数据更加简洁有序。去重的方法有很多,常见的有使用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}]
以上就是的几种常用方法,可以根据实际需要选择合适的方法进行使用,以达到更好的数据处理效果。