ES6Set和Map方法

参考来自阮一峰的ES6

写这篇博客,源于一道一行代码给数组去重的题目,由于ES6并没有完整的学过,就觉得很bug,像这种简单方法,既然有这种方法,那就没必要浪费时间去写那许多行代码了。

Set是ES6 的新的数据结构,与Array和Object一样,
且看下面两行代码:
var set = new Set([1,2,3])
console.log(toString.call(set))//"[Object Set]"
输出是不是很熟悉;
console.log(set)//{1,2,3}是一个类数组
它能够实现去重的原因就是ES6里规定它的成员值是唯一的,这就像是对象中的键值
是唯一的一样,之前我们数组去重也曾利用过对象的这个特点,
下面代码可以看出它的去重效果:
var set = new Set([NaN,NaN,undefined,undefined,null,null,1,1,2,2])
这里我们知道它的结果
set = {NaN,undefined,null,1,2}
这时候利用Array.from(set)就可以将结果转换为数组[NaN,undefined,null,1,2]
即达到数组去重的效果;

既然是一个新的数据结构,那它自然也就有属性和方法:
Set.prototype.constructor:构造函数,默认就是Set函数;
Set.prototype.size:返回Set实例的成员总数;
Set实例的方法分为两类:操作方法和遍历方法;
add(value):添加某个值,返回Set结构本身
delete(value):删除某个值,返回一个布尔值,表示删除是否成功;
has(value):返回一个布尔值,表示该值是否为Set的成员;
clear() :清除所有成员,没有返回值;
遍历操作//其实下面的这些遍历方法在数组中也有,所以就不举例子了
Set结构的实例有四个遍历方法,可以用于遍历成员
keys():返回键名的遍历器
values():返回键值的遍历器
entries():返回键值对的遍历器
forEach() :使用回调函数遍历每个成员

这里就简单用add和size来举个小例子:
var set = new Set([1,2,3,3,4])
set.add(4,5,6)//稍微试了一下add(),delete(),和has()这三个方法,如果传递多个参数,
那就只会识别第一个参数,忽视后面所有的参数,所以对结果产生影响的只有第一个参数;
所以上面代码的返回值是{1,2,3,4}

Map方法在这里现在先不说了,能力有限,
看完整个的解释,就觉得原本很清晰的键值对形式的数据变的更混乱了,
等以后发现用它比用Object舒服再来解释吧。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值