当前位置: 首页 > news >正文

js数组去重常见方法

简单数组

1、使用filter()方法:通过filter()方法遍历数组,返回仅包含首次出现的元素的新数组。

const arr = [1, 2, 3, 4, 2, 3, 5];
const list = arr.filter((item, index) => arr.indexOf(item) === index);
console.log(list); // [1, 2, 3, 4, 5]

2、使用reduce()方法:通过reduce()方法遍历数组,将元素存储在一个临时对象中,每次遇到重复元素时将其跳过,最后返回所有不重复元素的数组。

const arr = [1, 2, 3, 4, 2, 3, 5];
const list = arr.reduce((prev, cur) => prev.includes(cur) ? prev : [...prev, cur], []);
console.log(list); // [1, 2, 3, 4, 5]

3、使用Map:通过Map对象可以将数组元素作为键,通过Map的键唯一性特性去重,然后再将Map对象转换为数组。

const arr = [1, 2, 3, 4, 2, 3, 5];
const list = [...new Map(arr.map(item => [item, item])).values()];
console.log(list); // [1, 2, 3, 4, 5]

json数组

可以使用Set对象和Array.from()方法去除JSON数组中的重复项,但是需要注意的是Set对象只去除原始类型(如数字、字符串、布尔值)的重复项,对于对象类型,只有当两个对象的内容完全相同时,才会被视为重复 。所以不能直接使用复合类型,要先通过json转为字符串格式
如下

const arr = [{ name: '张三', age: 18 },{ name: '李四', age: 20 },{ name: '张三', age: 18 },{ name: '王五', age: 22 }
];
const list = Array.from(new Set(arr.map(JSON.stringify))).map(JSON.parse);
console.log(list);
// [{ name: '张三', age: 18 }, { name: '李四', age: 20 }, { name: '王五', age: 22 }]
http://www.lryc.cn/news/322635.html

相关文章:

  • 【Java Web基础】一些网页设计基础(二)
  • python中tkinter计算器
  • [嵌入式系统-39]:龙芯1B 开发学习套件 -9-PMON的文件结构
  • [蓝桥杯2012] 罗马数字
  • Thinkphp+workman+redis实现多进程异步任务处理
  • 牛客NC196 编辑距离(一)【较难 DFS/DP,动态规划,样本对应模型 Java,Go,PHP】
  • 走进jvm之垃圾回收器篇
  • rtt自动初始化机制学习
  • 基于SpringBoot和Vue的大学生租房系统的设计与实现
  • ai制图常用的软件有哪些?这5款ai生图工具值得推荐!
  • 一分钟了解JAVA语言
  • L4 级自动驾驶汽车发展综述
  • HTML + CSS 核心知识点- 定位
  • Spring MVC(二)-过滤器与拦截器
  • python vtk读取vtk文件
  • LeetCode 2671.频率跟踪器:俩计数哈希表
  • NAT笔记
  • MySQL 数据库的备份和还原
  • 初识CSS样式 与 文本背景样式
  • JSR380验证框架
  • 百度paddleocr GPU版部署
  • node.js 常用命令
  • Easypoi实现导出Excel(简单高效)
  • python之pathlib库使用介绍
  • Java:设计模式
  • 【链表】Leetcode 19. 删除链表的倒数第 N 个结点【中等】
  • 亚马逊认证考试系列 - 知识点 - 安全组简介
  • 同向双指针合集(力扣)
  • G - Find a way
  • AJAX 02 案例、Bootstrap框架