关于ES6中的Set、map容器的使用

关于ES6中的Set、map容器的使用

set容器

无序不可重复的多个Value的集合体

语法:

new Set([iterable]);

参数

iterable:如果传递一个可迭代对象,它的所有元素将被不重复地添加到新的 Set中。如果不指定此参数或其值为null,则新的 Set为空。

return:一个新的set对象

Set 结构没有键名,只有键值(或者说键名和键值是同一个值)

set的值是无序不可重复的,所以Set中的元素只会出现一次,也就是Set 中的元素是唯一的。
set内部判断不可重复,使用的算法叫做“Same-value-zero equality”,它类似于精确相等运算符(===),主要的区别是 Set 加入值时认为NaN等于自身,而精确相等运算符 认为NaN不等于自身。

举例:


//如果不指定此参数或其值为null,则新的 Set为空
console.log(new Set());    						//Set(0) {}

//所有元素将被不重复地添加到新的 Set 中
//set中只含有一个2
//Set(5) {1, 2, 3, "A", "B"}
console.log(new Set([1,2,3,2,"A","B"]));  	   
console.log(new Set([0,-0,"0"]));		 	   //Set(2) {0,"0"}	
console.log(new Set([false,0]));			   //Set(2){false,0};

//Set(5){null,undefined,NaN,0,false}
console.log(new Set([null,undefined,NaN,0,false])); 


//Set 加入值时认为NaN等于自身,而精确相等运算符 (===)  认为NaN不等于自身
console.log(NaN===NaN);                  	  //false
console.log(new Set([NaN,NaN]));		      //Set(1) {NaN}	

set 实例属性

  • Set.prototype.constructor:返回实例的构造函数。默认情况下是Set

  • Set.prototype.size:返回Set对象的值的个数。

//Set.prototype.size
console.log(new Set([1,4,5,"dd","res"]).size);   //5

set 实例方法

1.set 实例的操作方法(用于操作数据)

  • Set.prototype.add(value):在Set对象尾部添加一个元素。返回该Set对象。

  • Set.prototype.delete(value):删除某个值,返回一个布尔值。删除成功则为true,反之则为false

  • Set.prototype.has(value):表示该值在Set中是否存在,返回一个布尔值。

  • Set.prototype.clear():清除Set对象中所有成员,没有返回值。

举例:


let set =new Set([1,"aa",3]);
console.log(set.add("cc"));         //Set(4) {1, "aa", 3, "cc"}
console.log(set.delete("aa"))		//true
console.log(set.has("aa"));			//false
set.clear();
console.log(set);				    //Set(0){}

2.set 实例的遍历方法(用于遍历数据)

  • Set.prototype.keys():返回键名的遍历器

  • Set.prototype.values():返回键值的遍历器

  • Set.prototype.entries():返回键值对的遍历器

  • Set.prototype.forEach(callbackFn[, thisArg]):使用回调函数遍历每个成员

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值