ES6数组去重的三个简单办法

简单说一下利用ES6实现数组去重的三个办法。
第一种: 利用Map对象和数组的filter方法

贴上相关代码

打印后的结果

通过打印我们发现,确实实现了我们想要的效果。那么下面简单来解释一下。
1.Map对象是ES6提供的一个新的数据结构,其中has的办法是返回一个布尔值,表示某个值是否存在当前的Mp对象之中,set的办法是给Map对象设置key/value。
2.filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。
所以说,Map对象结合filter方法可以达到数组去重的效果~

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

同样贴上相关代码片段

打印运行后的结果

简单来说,第二种方法比第一种还简单。同样来简单解释一下。
1.Set是ES6新提供的数据结构,类似于数组,但是本身没有重复值。
2.Array.from方法用于将两类对象转为真正的数组:类似数组的对象(array-like object)和可遍历(iterable)的对象(包括 ES6 新增的数据结构 Set 和 Map)。
所以set结合Array.from同样可以达到数组去重的效果。不过需要注意的是,主流浏览器像Chrome,Firfox,Opera,Safari,包括微软的Edge,都是支持的,但是唯独IE系列不支持。

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

第三种办法可以说是更简单
贴上相关代码

打印后运行的结果

这就是利用ES6新特性达到数组去重的三种办法,这三种办法有个共同的好处就是代码简洁,对于undefined和NaN也同样可以达到去重的效果~~
如果你有其他办法也欢迎一起分享一下~

ES6数组去重的三个简单办法相关推荐

  1. es6数组去重的三种方法

    1.es6的三种方法 let arr = [2, 5, 3, 3, 5, 7, 3, 7, 3, 7, 2, 2]// (1)拓展运算符 + new Set 方法let narr1 = [...new ...

  2. es6数组去重(连重复的对象也可以去掉)

    1,去除简单类型 //ES6中新增了Set数据结构,类似于数组,但是 它的成员都是唯一的 ,其构造函数可以接受一个数组作为参数,如: let array = [1, 1, 1, 1, 2, 3, 4, ...

  3. es6 数组去重,数组里面的对象去重

    // 数组去重 {const arr = [1,2,3,4,1,23,5,2,3,5,6,7,8,undefined,null,null,undefined,true,false,true,'中文', ...

  4. es6 数组去重_《前端算法系列》数组去重

    虽然算法在前端开发中很少会得以使用,但是了解常用的算法,熟悉各种算法的性能和优劣,将会让你在前端的道路上走的更远. 前言 文中所有代码位于位于此代码仓库中,大家可以下载代码进行学习.推敲和改进.另,如 ...

  5. ES6数组去重(一行代码实现数组去重)

    1.ES6中新增了Set数据结构,类似于数组,但是 它的成员都是唯一的 ,其构造函数可以接受一个数组作为参数,如: let array = [1, 1, 1, 1, 2, 3, 4, 4, 5, 3] ...

  6. js、ES6数组去重

    数组去重的方式 提示:reduce,Array.from(new Set(array)),扩展运算符 -,map方法等 reduce去重 // 数组对象去重 let obj = {}; let arr ...

  7. ES6数组去重的常用方法

    普通数组去重 数据源 const test = ['q', 'w', 'e', 'q', 'u', 'p'] 方法一 [...newSet(test)]; 方法二 Array.from(new Set ...

  8. 数组去重,ES6数组去重 new Set()

    普通数组去重 var b = [...new Set([1,2, 3, 4, 5, 5, 5, 5])]console.log(b); 输出结果: 包含对象的数组去重 var o ={a:1}var ...

  9. ES6数组去重 new Set()

    普通数组去重 var b = [...new Set([1,2, 3, 4, 5, 5, 5, 5])]console.log(b); 包含对象的数组去重 var o ={a:1}var b = [. ...

最新文章

  1. C#--数据类型和类型转换
  2. 【Qt】sqlite数据库使用
  3. json字符串与对象如何相互转换
  4. js时间戳转成日期格式
  5. 清华大学开始招收高二学生,数学天赋是最重要的入围条件
  6. IE低版本(6-9)CSS hack
  7. solaris 关闭、释放socket端口
  8. 2018-2019-2 20165234 《网络对抗技术》 Exp2 后门原理与实践
  9. 微信机器人,微信聊天机器人搭建教程附源代码
  10. OpenCL编程入门
  11. Vscode代码量统计
  12. LR下载地址及破解方法
  13. html5家谱制作模板,Word如何做家谱世系图?
  14. Linux 中文件压缩方法与tar打包详解
  15. AD16常见问题(刚入门)
  16. 开源工具 | 手游自动化框架GAutomator,新增iOS系统和UE4引擎支
  17. 单核CPU与多核CPU的区别
  18. 2 计算机控制器的组成,组合逻辑控制器组成结构及工作原理解析
  19. Debian搭建ftp服务并使用虚拟账户登录
  20. 【IPv6】NS,NA 报文学习

热门文章

  1. windows和ubuntu双系统的安装
  2. 深入浅出NUMA架构
  3. 将windows电脑上的图片导入到iphone
  4. 《Java SE实战指南》07-05:等式和关系运算符
  5. 基于java婚纱摄影租赁网站
  6. 论文阅读:Adversarial Cross-Modal Retrieval对抗式跨模式检索
  7. 脉冲按键电话按键显示器
  8. python word表格嵌套_python word解析 嵌套表格
  9. Java IO流读取中文
  10. Mybatis-Plus-Generator代码生成工具