许多用以前方法去实现需要一大串代码的,用ES6竟然几句就搞定了。

  Set对象是ES6中新增的类型,可以自动排除重复项,生成Set对象后,可以轻松遍历它所包含的内容。

  例如,遍历字符串。

var str = new Set("Hello world!");
for(var str1 of str){console.log(str1+" ")
}结果会是这样:H e l o w r d !

  为什么会是这样,因为Set对象会自动排除重复项。

  到了这里,我们可以很容易的想到使用Set对象进行数组去重,没错,通过该方法确实是挺方便的。 

var arr = [12,23,45,34,56,56,87,23,45,12,89];
var arr1 = new Set(arr);
var arr2 = [];
for(var arr3 of arr1){arr2.push(arr3)
}
console.log(arr2)

  另一种数组去重法:

function foo(arr){return Array.from(new Set(arr))  // Array.from方法可以将 Set 结构转为数组
}
const items = [1,2,3,4,5,6,7,1,2,1,3,1,2,3]
console.log(foo(items))

  Set函数接受数组作为参数,再使用Array.from将其转换为数组,从而达到去重的目的

  还有一种更简洁的;

let arr1 = [12,13,23,45,46,48,78,79,45,12,13,23];
let arr = new Set(arr1)
console.log([...arr])  // [ 12, 13, 23, 45, 46, 48, 78, 79 ]

转载于:https://www.cnblogs.com/sunjuncoder/p/9895291.html

ES6 关于Set对象相关推荐

  1. 【ES6】Promise对象详解

    [ES6]Promise对象详解 一.Promise对象的含义 二.Promise对象的用法 三.Promise对象的几个应用[重点] 1.时间延迟函数 2.图片异步加载 查看更多ES6教学文章: 参 ...

  2. 【ES6】Proxy对象

    [ES6]Proxy对象 一.Proxy的基本用法 二.Proxy示例的方法 1)get() 2)set() 3)apply() 查看更多ES6教学文章: 参考文献 引言:ES6规范里面新增了Prox ...

  3. 谈谈 ES6 的 Promise 对象

    2019独角兽企业重金招聘Python工程师标准>>> 谈谈 ES6 的 Promise 对象 异步编程 promise es6 javascript 前言 开篇首先设想一个日常开发 ...

  4. JavaScript从入门到放弃 - ES6中的对象和类

    重点讲解Tab栏切换.增.删.改 1. 面向过程与面向对象 2.ES6 中的对象与类 2.1 对象 2.2 类 2.2.1 创建类 2.2.1.1 语法 2.2.1.2 实例 2.2.2 类创建添加属 ...

  5. es6判断对象key是否存在,ES6中获取对象的key

    ES6中获取对象的key const json = {'a': 123, 'b': 321}; Object.keys(json).forEach(key => { window.console ...

  6. ES6的Reflect对象

    Reflect对象的方法与Proxy对象的方法一一对应,只要proxy对象上有的方法reflect也能找到. ES6将Object对象的一些属于语言内部的方法放到Reflect对象上,从Reflect ...

  7. es6 内置对象扩展rest, Arry 扩展方法Array.from(),find(), findIndex(),includes()

    1.es6内置对象扩展rest实参 2.  Arry 扩展方法    (1)构造函数方法:Array.from()   (2) find()   (3) findIndex()   (4)includ ...

  8. 【ES6】es6数组中对象去重,数组对象去重方法总结---filter()与reduce()实践

    es6数组中对象去重 方法一: filter()与findIndex()给数组去重 1. filter()用法 2. findIndex()用法 3. 去重实战 方法二:reduce()去重 1. r ...

  9. 菜鸟也谈js(一)——ES6解构对象篇

    前言 为什么我会在开篇谈这样一个low到爆的问题呢?这是因为一个伟大的错误,多么痛的领悟!从前,我深深的以为,后台是权威,后台的数据必须是对的.直到有一天测试给我反馈了一个bug,我的页面崩溃了... ...

  10. ES6中Reflect对象使用详解(附代码)

    目录 目录 Reflect的方法 Reflect.get(target, name, receiver) Reflect.set(target, name, value, receiver) Refl ...

最新文章

  1. 值得收藏的146条经典民间偏方
  2. java 异常_Java 进阶之异常处理
  3. linux+mmap父子通信_linux库函数mmap()原理?转载
  4. Windows 编程[5] - 学习窗体生成的过程五
  5. Memcache,Redis,MongoDB(数据缓存系统)方案对比与分析
  6. python最好用的助手_推荐5款好用的Python工具
  7. Java到底是不是值传递
  8. 加载webView使用框架AgenWeb
  9. CS229 Lecture 20
  10. 未来简史--读书语句摘录及感悟
  11. WPF入门教程系列(5)
  12. 10·24|程序员节!
  13. 求个人所得税和税后收入
  14. Python机器学习建模的标准流程(特征工程+建模调参+模型评估+全流程可视化)
  15. SQL 涉及3个表的连接
  16. spring IOC DI AOP
  17. 为什么Java仍将是未来的主流语言?
  18. C语言---14文件操作---03文件加密器
  19. 机器人开发平台有哪些
  20. electron 中使用autobahn 不工作问题记录

热门文章

  1. atomsphere scattering almost final.
  2. 发布一个平滑进度条控件
  3. 执行mount命令时找不到介质或者mount:no medium found的解决办法
  4. 1.maven下仅shiro框架对shiro的测试使用
  5. ext.net 开发学习——常用布局(八)
  6. LeetCode 141. 环形链表(Linked List Cycle) 19
  7. 【刷题】BZOJ 4503 两个串
  8. WebService之基于REST机制的实现实例(Java版)
  9. E20180418-hm
  10. Mac Python IDLE中如何更改字体