关于Set对象(ES6)
2017-11-10 21:48
246 查看
今天初次接触ES6,发现确实挺神奇的,许多用以前方法去实现需要一大串代码的,用ES6竟然几句就搞定了。
这里我要说的是Set对象。Set对象是ES6中新增的类型,可以自动排除重复项,生成Set对象后,可以轻松遍历它所包含的内容。
例如,遍历字符串。
为什么会是这样,因为Set对象会自动排除重复项。
到了这里,我们可以很容易的想到使用Set对象进行数组去重,没错,通过该方法确实是挺方便的。
另一种数组去重法:
还有一种更简洁的;
这里我要说的是Set对象。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 ]
相关文章推荐
- 关于TreeSet内添加具体的自定义对象的排序
- ES6-对象的扩展-_proto_ 属性,Object.setPrototypeOf(),Object.getProtitypeOf()
- es6 map,set与数组和对象的比较(十)
- ES6下关于对象继承的新方法
- vc中关于SetItemData和GetItemData与对象相关联
- objective-c中对象所有权的内存管理(关于set,get方法),以及如何使用@property来进行简易操作(九)
- 关于Servlet中HttpServletRequest对象的setCharacterEncoding方法的讨论。
- ES6 关于对象的扩展
- objective-c中对象所有权的内存管理(关于set,get方法),以及如何使用@property来进行简易操作(九)
- objective-c中对象所有权的内存管理(关于set,get方法),以及如何使用@property来进行简易操作
- 关于es6的一些常用关键字以及set与数组的操作
- hibernate 使用sql 查询利用setResultTransformer查询出封装好的VO对象
- Android关于setExitTransition() 没有效果的问题
- 关于前台从后台去对象,为空的最大可能的原因
- 理解ES6--第6部分:set 和 map , js中的字典,地图,弱字典和弱地图
- Hibernate-多关系时对应的多个关联对象Set集合进行排序
- 关于list、set、map的几点总结
- ASP.NET中一些关于http对象的学习
- 关于javascript function对象那些迷惑分析
- 关于存储—块,文件,对象