千家信息网

es6如何实现数组去重

发表于:2025-02-23 作者:千家信息网编辑
千家信息网最后更新 2025年02月23日,这篇文章将为大家详细讲解有关es6如何实现数组去重,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。es6数组去重的方法:1、利用Set对象和数组的from方法,语法"
千家信息网最后更新 2025年02月23日es6如何实现数组去重

这篇文章将为大家详细讲解有关es6如何实现数组去重,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。

es6数组去重的方法:1、利用Set对象和数组的from方法,语法"Array.from(new Set(arr))";2、利用Set和扩展运算符,语法"[...new Set(arr)]";3、利用Map对象和数组的filter方法。

本教程操作环境:windows7系统、ECMAScript 6版、Dell G3电脑。

第一种:利用Set对象和数组的Array.from方法

const newArr = Array.from(new Set(arr));

代码示例:

打印运行后的结果

简单来说,第二种方法比第一种还简单。同样来简单解释一下。

  • Set是ES6新提供的数据结构,类似于数组,但是本身没有重复值。

  • Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括 ES6 新增的数据结构 Set 和 Map)。

所以set结合Array.from同样可以达到数组去重的效果。不过需要注意的是,主流浏览器像Chrome,Firfox,Opera,Safari,包括微软的Edge,都是支持的,但是唯独IE系列不支持。

第二种:利用Set+扩展运算符 …

第三种办法可以说是更简单

const newArr = [...new Set(arr)];

代码示例:



这就是利用ES6新特性达到数组去重的三种办法,这三种办法有个共同的好处就是代码简洁,对于undefined和NaN也同样可以达到去重的效果~~

第三种: 利用Map对象和数组的filter方法

function unique(arr) {    const res = new Map();    return arr.filter((a) => !res.has(a) && res.set(a, 1))}

代码示例:


通过打印我们发现,确实实现了我们想要的效果。那么下面简单来解释一下。

  • Map对象是ES6提供的一个新的数据结构,其中has的办法是返回一个布尔值,表示某个值是否存在当前的Mp对象之中,set的办法是给Map对象设置key/value。

  • 2filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

所以说,Map对象结合filter方法可以达到数组去重的效果~

关于"es6如何实现数组去重"这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,使各位可以学到更多知识,如果觉得文章不错,请把它分享出去让更多的人看到。

数组 对象 方法 办法 代码 效果 数据 数据结构 示例 篇文章 结构 元素 就是 更多 语法 运算符 支持 解释 运算 不错 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 员工工资管理系统数据库设计索引 法国网络安全博弈 网络安全教育学习系统 MET全民英语 数据库 网络安全21条规定 鬼泣巅峰之战服务器有几种 中国网络安全协会联盟 泉州到珠海哪个服务器有肯德基 如何爬取每个网页特定数据库 桂林深蓝软件开发有限公司 电脑软件开发教学视频 奉贤区智能软件开发售后保障 软件开发项目量化 美萍数据库连接失败vpn 单节点数据库选型 广州市伊思梦互联网科技有限公司 服务器如何用手机发送邮件 江苏猫人互联网科技有限公司 苹果激活服务器不可用 ca证书服务器搭建方法 爬去微博数据库 安徽网络技术开发费用 湖北在线审批管控软件开发平台 奥鹏数据库技术答案 安徽拼接服务器供应商 网络安全是实战还是打ct php 多语句查询数据库表 国家不让做教育软件开发了吗 仓山区图书馆网络安全 小川在线网络技术联系电话
0