网易首页 > 网易号 > 正文 申请入驻

如何在ES6中删除重复的数组元素

0
分享至

这里有三种方式可以滤除数组中重复的元素,只保留唯一的元素。我最喜欢的是用Set,因为它是最简短的。

使用Set

让我首先解释一下Set是什么:

Set是ES6中引入的一个新的数据对象。因为Set只允许你存储唯一的值。当你传入一个数组时,它将删除其中所有重复的值。

让我们回到我们的代码,分解一下代码发生了什么。这里做了2件事:

1. 首先,我们创建了一个新的Set对象,把一个数组传递进去。因为Set只允许唯一的值存在,所有重复的元素都会被删除。

2. 现在重复的值已经没有了,我们再把它转回一个数组,这里使用了扩展运算符...

使用Array.from把Set转为一个数组

或者,你也可以使用Array.from把一个Set转为一个数组:

使用filter

为了理解这种处理方式,我们先了解一下这两个方法是做什么的:indexOf 和 filter。

IndexOf

indexOf方法返回在数组中找到的符合要求的元素第一次出现的索引值。

filter

filter方法会遍历原数组筛选出符合条件的元素组成一个新数组。换句话说,如果数组元素符合条件并返回了true,它会被填充到新的过滤后的数组里。其他元素不符合条件或者返回了false,不会现在过滤后的数组里。

让我们深入了解,看看数组循环中做了什么。

下面是在控制台的输出。重复的元素是那些索引值和indexOf()不相同的。所以对于那些元素,条件检查会返回false,它们不会出现在过滤后的数组里。

查找重复的值

我们也可以使用filter方法来查找数组中的重复值。我们只需要调整一下过滤条件即可:

如果我们运行上面的代码会看到下面的输出:

使用reduce

reduce方法用于缩减数组元素,并根据你传递的缩减处理函数将它们组合成最终的数组。

对于我们的例子,我们的缩减处理函数(reducer)会检查最终的数组里是否包含了某个元素。如果没有包含,会把该元素推入此数组里。否则,会忽略此元素。函数最后返回最终的数组。

缩减过程不太容易理解,让我们分解一下,看看输出结果:

如下是console.log的输出结果:

特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。

Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

相关推荐
热点推荐
广东16岁女儿被父亲过度宠溺,被母亲回家撞见后,失控将其砍死

广东16岁女儿被父亲过度宠溺,被母亲回家撞见后,失控将其砍死

晓艾故事汇
2024-11-04 10:55:36
太悲痛了!广西横州市发生一起交通事故致4人死亡,现场一片狼藉!

太悲痛了!广西横州市发生一起交通事故致4人死亡,现场一片狼藉!

广西活动
2024-11-14 18:06:14
每周“走读”澳大利亚的山东留学生:3个多月往返12趟,为毕业后回国就业做准备

每周“走读”澳大利亚的山东留学生:3个多月往返12趟,为毕业后回国就业做准备

红星新闻
2024-11-13 20:53:06
中国癌症新发和死亡双双第一!华科大最新:缺乏运动、水果吃的少、吸烟是造成中国癌症负担的3大因素

中国癌症新发和死亡双双第一!华科大最新:缺乏运动、水果吃的少、吸烟是造成中国癌症负担的3大因素

医诺维
2024-11-13 17:06:30
体育场司机自残细节披露,他对自己下手可真狠,仍在昏迷抢救中

体育场司机自残细节披露,他对自己下手可真狠,仍在昏迷抢救中

辣条小剧场
2024-11-14 11:51:32
李璇:伊万最大贡献是给了想为国足踢球的人机会,新人都押对了

李璇:伊万最大贡献是给了想为国足踢球的人机会,新人都押对了

直播吧
2024-11-15 00:39:24
演唱会被粉丝疯狂抵制!票价比周杰伦还高,割韭菜太没底线

演唱会被粉丝疯狂抵制!票价比周杰伦还高,割韭菜太没底线

晴晴给你讲故事
2024-11-14 15:14:15
伊能静也想上“离婚节目”,杨迪称这个想法好危险 秦昊汗流浃背

伊能静也想上“离婚节目”,杨迪称这个想法好危险 秦昊汗流浃背

小冠说娱
2024-11-14 14:42:28
为什么多数人不愿意做肠镜?院士:做一次肠镜,或能保5年没问题

为什么多数人不愿意做肠镜?院士:做一次肠镜,或能保5年没问题

蜉蝣说
2024-11-14 16:59:49
为什么彭德仁卧薪尝胆14年才打下果敢,仅用两个月就宣告失败?

为什么彭德仁卧薪尝胆14年才打下果敢,仅用两个月就宣告失败?

文史微鉴
2024-11-14 10:20:48
重庆小哥把“上班之路”发到网上,全世界网友惊呆了!

重庆小哥把“上班之路”发到网上,全世界网友惊呆了!

鲁中晨报
2024-11-13 14:57:09
拿命穿裤子?官方曝光“加绒裤”有毒!长期穿会得白血病,快避开

拿命穿裤子?官方曝光“加绒裤”有毒!长期穿会得白血病,快避开

室内设计师有料儿
2024-11-14 09:42:19
上海天气转折:今夜局部大雨!强冷空气马上来袭,周六起暴跌近10℃

上海天气转折:今夜局部大雨!强冷空气马上来袭,周六起暴跌近10℃

上观新闻
2024-11-14 22:40:41
某局大崩溃:管理人员都发不出工资了!

某局大崩溃:管理人员都发不出工资了!

猫小狸同学
2024-11-13 20:40:03
谁动中国就灭谁!3个与我国称兄道弟的国家,如今将枪口瞄准中国

谁动中国就灭谁!3个与我国称兄道弟的国家,如今将枪口瞄准中国

娱乐喵喵说
2024-11-14 03:56:23
世预赛-国足vs巴林首发:韦世豪、林良铭先发,蒋光太替补

世预赛-国足vs巴林首发:韦世豪、林良铭先发,蒋光太替补

直播吧
2024-11-14 20:22:24
多位全国人大常委会委员建议:将全国科普月写入科普法修订草案

多位全国人大常委会委员建议:将全国科普月写入科普法修订草案

环球网资讯
2024-11-13 18:19:10
强烈建议,暂停王楚钦的所有比赛,他不应该再参加比赛了!

强烈建议,暂停王楚钦的所有比赛,他不应该再参加比赛了!

秋眼体育
2024-11-14 10:06:05
太牛了,海外已经吵翻了!美国网友:头一次发现中国技术这么厉害

太牛了,海外已经吵翻了!美国网友:头一次发现中国技术这么厉害

战争史
2024-11-14 17:14:28
每年过年我都给领导送礼,他调走后我们很少联系,三年后他回单位升“一把手”,我再次上门送礼当场愣住了!

每年过年我都给领导送礼,他调走后我们很少联系,三年后他回单位升“一把手”,我再次上门送礼当场愣住了!

职场火锅
2024-11-14 22:00:44
2024-11-15 04:12:49
小象Web开发
小象Web开发
专注于web开发领域
25文章数 909关注度
往期回顾 全部

科技要闻

官宣!极氪领克合并,吉利走向大整合

头条要闻

世预赛:国足客场1-0巴林收获两连胜 张玉宁绝杀

头条要闻

世预赛:国足客场1-0巴林收获两连胜 张玉宁绝杀

体育要闻

本季英超最炸裂的瓜,由一名裁判制造

娱乐要闻

娜扎张云龙恋情曝光!甜蜜细节被扒

财经要闻

"机构举报游资"导致A股大跌?

汽车要闻

七块屏幕四座布局 仰望U7中式百万座舱

态度原创

家居
教育
亲子
游戏
时尚

家居要闻

现代潮流空间 轻奢现代风并重

教育要闻

16岁中学生简历引关注 正高职称 还研发火箭?

亲子要闻

面容缺陷宝宝问话妈妈,为什么小朋友说自己丑,扎了辫子还是没人喜欢

剑星PS5 Pro增强奇妙比喻:泳装伊芙秒变真实体模!

秋冬穿黑色,这4个技巧照着穿更时髦

无障碍浏览 进入关怀版