详解ES6中的 Set Map 数据结构学习总结
ES6中的Set数据结构
ES6新增了一种Set数据结构。它类似数组。最重要的一点是Set中的结构成员没有重复的,可用这点一行代码实现数组去重。Set本身是一个构造函数。通过newSet()来创建Set结构。
letarr1=['Hello','World','ES6'] letset1=newSet() arr1.forEach(type=>{ set1.add(type) })
通过newSet创建一个Set结构。forEach遍历arr1数组。把每一项通过Set.prototype.add方法向Set结构中添加成员。
Set也可以接受一个数组作为参数。
letarr2=[1,2,3,4,1,5,2] letset2=newSet(arr2) for(lettypeofset2){ console.log(type) } //1 //2 //3 //4 //5
上面的newSet()创建Set数据结构时,将一个数组作为它的参数。最后通过forof遍历set2。因为结构成员没有重复,所以打印12345
Set接受的参数不会进行类型转换,newSet(5,'5')这完全是两个值。
Set实现数组去重
//方法1 [...newSet([1,2,3,1,2])]//123 //方法2 Array.from(newSet([1,2,3,1,2]))//123
都是通过向newSet()中传入一个数组,利用Set结构成员都是唯一的特性,最后通过扩展运算符...,或者ES6提供的一种将类数组转换为数组的方法Array.from()。
Set操作方法
- Set.prototype.add(value)向Set结构中添加一名成员,返回值为Set结构
- Set.prototype.delete(value)删除一名成员,返回值为布尔值。true成功,false失败
- Set.prototype.has(value)Set成员是否存在,true为存在,false为不存在
- Set.prototype.clear()清空所有的成员
letarr3=[7,8,9] letset3=newSet(arr3) set3.add(10) set3.size()//4 set3.delete(8) set3.size()//3 set3.clear()//0
Set遍历方法
- keys()键名的遍历器
- values()键值的遍历器
- entries()键值对的遍历器,以数组形式返回
letarr4=['javascript','vue','node.js','typescript'] letset4=newSet(arr4) //set.keys() for(letkofset4.keys()){ console.log(k)\ //javascript //vue //node.js //typescript } //set.values() for(ketvofset4.values()){ console.log(v) //和上面的set4.keys()遍历的结果一样 } //set.entries() for(leteofset3.entries()){ console.log(e) //['javascript','javascript'] //['vue','vue'] //['node.js','node.js'] //['typescript','typescript'] }
可见,keys()和values()遍历是一模一样的,以后遍历使用keys()还是values()没有区别。entries遍历返回的是数组,分别是keys()values()结果。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。