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

如何在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.

相关推荐
热点推荐
太惨烈!湖北孝感一载有12人面包车与大货车相撞,目击者:一地血

太惨烈!湖北孝感一载有12人面包车与大货车相撞,目击者:一地血

小人物看尽人间百态
2024-12-02 17:22:39
林志玲不怕“走光”,穿荷花裙泳装拍湿身照,当年录节目真是敬业

林志玲不怕“走光”,穿荷花裙泳装拍湿身照,当年录节目真是敬业

南城无双
2024-12-03 01:27:50
三只羊供应链服务公司经营异常

三只羊供应链服务公司经营异常

界面新闻
2024-12-02 10:11:11
与中国“势不两立”的德国外长,态度180度转变,到底发生了啥?

与中国“势不两立”的德国外长,态度180度转变,到底发生了啥?

头条爆料007
2024-12-02 14:42:50
作品已禁播,他被AI换脸,彻底凉凉

作品已禁播,他被AI换脸,彻底凉凉

银河卧谈会
2024-12-01 20:42:00
喜讯!广东这所学院确定更名为大学,已再次声明,当地学生有福了

喜讯!广东这所学院确定更名为大学,已再次声明,当地学生有福了

书中自有颜如玉
2024-12-02 21:38:46
镜报:伊普斯维奇队长拒绝佩戴彩虹袖标,因为他是一位穆斯林

镜报:伊普斯维奇队长拒绝佩戴彩虹袖标,因为他是一位穆斯林

直播吧
2024-12-02 20:53:17
广东一男子洁身自好,却感染艾滋病,只因生活中的一个坏习惯

广东一男子洁身自好,却感染艾滋病,只因生活中的一个坏习惯

凯裕说故事
2024-09-17 15:25:35
鉴宝|累坏牛的那片田,是筱田悠的田!

鉴宝|累坏牛的那片田,是筱田悠的田!

贵圈真乱
2024-11-07 21:12:51
曾风靡几代人,如今却沦为笑柄的4个国产运动鞋,谁还在乱跟风?

曾风靡几代人,如今却沦为笑柄的4个国产运动鞋,谁还在乱跟风?

白宸侃片
2024-12-01 18:53:29
12月开启,数千只西伯利亚海鸥抵达深圳湾,深圳人列队迎接

12月开启,数千只西伯利亚海鸥抵达深圳湾,深圳人列队迎接

南方都市报
2024-12-01 23:10:22
全红婵现身上海,烫刘海化妆后颜值飙升,美得简直像换了个人

全红婵现身上海,烫刘海化妆后颜值飙升,美得简直像换了个人

时髦范
2024-12-01 17:29:28
中国红通逃犯跑路失败!在泰国机场登机前最后一刻被警方逮捕

中国红通逃犯跑路失败!在泰国机场登机前最后一刻被警方逮捕

暹罗飞鸟
2024-12-02 14:53:21
法国小伙马库斯确认捐赠日本侵华照片,并计划在全球出版

法国小伙马库斯确认捐赠日本侵华照片,并计划在全球出版

现代快报
2024-12-02 18:01:07
经济寒冬,老板们忙着搞“合法诈骗”!

经济寒冬,老板们忙着搞“合法诈骗”!

东亚财评V
2024-12-02 07:06:23
大陆学生在台说出3句话,民进党彻底破防了,卢秀燕暴露出真面目

大陆学生在台说出3句话,民进党彻底破防了,卢秀燕暴露出真面目

DS北风
2024-12-02 18:05:12
重大喜讯!顶尖降压药成功纳入医保,但这几类人不建议使用

重大喜讯!顶尖降压药成功纳入医保,但这几类人不建议使用

探寻者
2024-12-02 14:46:26
俄战略专家警告:若美军执意与中国开战,一周内兵力损失超十万人

俄战略专家警告:若美军执意与中国开战,一周内兵力损失超十万人

南南史
2024-12-02 10:17:37
越南高铁计划尘埃落定,承建方花落谁家存悬念!

越南高铁计划尘埃落定,承建方花落谁家存悬念!

星辰故事屋
2024-12-02 19:10:23
“二十四史”浓缩成最经典的24句话,句句如金,建议全部背诵下来

“二十四史”浓缩成最经典的24句话,句句如金,建议全部背诵下来

枫叶的枫1516
2024-11-20 19:58:01
2024-12-03 05:11:00
小象Web开发
小象Web开发
专注于web开发领域
25文章数 909关注度
往期回顾 全部

科技要闻

钟睒睒喊话后,抖音最新回应!

头条要闻

媒体:菲律宾又向美交"投名状" 跟俄罗斯也"干上了"

头条要闻

媒体:菲律宾又向美交"投名状" 跟俄罗斯也"干上了"

体育要闻

什么?滕哈格还在曼彻斯特?

娱乐要闻

黄子韬徐艺洋官宣结婚,超般配!

财经要闻

刘世锦:扩大消费需求要找准重点或痛点

汽车要闻

小米汽车:11月交付继续超2万辆 全年冲刺13万辆

态度原创

游戏
家居
艺术
教育
数码

PS合作伙伴奖明日揭晓!你觉得《黑神话》能拿几个?

家居要闻

动线自由开合 开放中的私密

艺术要闻

故宫珍藏的墨迹《十七帖》,比拓本更精良,这才是地道的魏晋写法

教育要闻

温州日报作文版作文选登:朱子慧《陶山的烟火气》

数码要闻

极度未知 天迹 2 无线降噪游戏耳机上市,1499 元

无障碍浏览 进入关怀版