117.info
人生若只如初见

es6对象数组如何去重

可以使用Set数据结构或者reduce方法来去重。

  1. 使用Set数据结构:
let arr = [{name: 'Alice', age: 20}, {name: 'Bob', age: 30}, {name: 'Alice', age: 20}];
let uniqueArr = Array.from(new Set(arr.map(JSON.stringify))).map(JSON.parse);
console.log(uniqueArr);
  1. 使用reduce方法:
let arr = [{name: 'Alice', age: 20}, {name: 'Bob', age: 30}, {name: 'Alice', age: 20}];
let uniqueArr = arr.reduce((prev, curr) => {
  let hasDuplicate = prev.some(obj => obj.name === curr.name && obj.age === curr.age);
  if(!hasDuplicate) {
    prev.push(curr);
  }
  return prev;
}, []);
console.log(uniqueArr);

以上两种方法都可以实现对对象数组的去重,根据实际情况选择使用。

未经允许不得转载 » 本文链接:https://www.117.info/ask/fe125AzsLBQJVDVA.html

推荐文章

  • es6数组去重的方法有哪些

    ES6 数组去重的方法有以下几种: 使用 Set 数据结构 let arr = [1, 2, 2, 3, 4, 4];
    let newArr = [...new Set(arr)];
    console.log(newArr); // [1, 2...

  • es6数组怎么筛选出所有重复项

    可以使用Set数据结构来筛选出所有重复项。Set是ES6新增的一种数据结构,它类似于数组,但是成员的值都是唯一的,没有重复的值。
    下面是一个使用Set筛选重复...

  • es6正则不能输入英文如何解决

    在ES6正则表达式中,可以使用Unicode字符类来匹配不同语言的字符。您可以使用\p{Letter}来匹配任何Unicode字母字符。这样可以确保正则表达式可以匹配英文字符。<...

  • es6如何判断数组是否包含某个元素

    ES6中可以使用includes()方法来判断一个数组是否包含某个元素。这个方法返回一个布尔值,表示数组是否包含指定的元素。
    语法如下:
    array.includes(se...

  • java反编译指令有什么用

    Java反编译指令是用来将已经编译过的Java字节码文件(.class文件)转换回Java源代码文件(.java文件)。这个过程称为反编译。
    反编译指令的主要用途如下: ...

  • Java怎么判断数组是否有重复元素

    可以使用两种方法来判断一个数组是否有重复元素。
    方法一:使用双层循环遍历数组
    public static boolean hasDuplicate(int[] arr) { for (int i = 0; ...

  • c++继承的实现方式有哪几种

    在C++中,有三种继承的实现方式:公有继承、私有继承和保护继承。 公有继承:
    公有继承是最常用的继承方式。使用关键字"public"来声明继承关系,基类中的公...

  • redis怎么查看集群状态

    要查看Redis集群的状态,可以使用以下方法: 使用命令行工具连接到任意一个Redis节点: redis-cli -h -p 输入以下命令查看集群状态: CLUSTER NODES 该命令将会列...