js对象数组去重

分类:知识百科 日期: 点击:0

是一种常见的数据处理技术,它可以有效减少数据中的重复项,使得数据更加简洁有序。去重的方法有很多,常见的有使用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}]

以上就是的几种常用方法,可以根据实际需要选择合适的方法进行使用,以达到更好的数据处理效果。

标签:

版权声明

1. 本站所有素材,仅限学习交流,仅展示部分内容,如需查看完整内容,请下载原文件。
2. 会员在本站下载的所有素材,只拥有使用权,著作权归原作者所有。
3. 所有素材,未经合法授权,请勿用于商业用途,会员不得以任何形式发布、传播、复制、转售该素材,否则一律封号处理。
4. 如果素材损害你的权益请联系客服QQ:77594475 处理。