javaScript中的Set集合的基本概念和相关API

ECMAScript6新增的Set是一种新的集合类型,为这门语言带来集合数据结构。Set在很多方面都像是加强的Map,这是因为他们的大多数API和行为都是共有的。

1. 基本API

使用new关键字和Set构造函数创建空集合:

const m = new Set()

Set集合的初始化

  1. 用数组初始化set集合
const s1 = new Set(["val1","val2","val3"])
alert(s1.size);//3
  1. 用迭代器初始化Set集合
const s2 = new Set({
	[Symbol.iterator]:function*(){
	yield "val1";
	yield "val2";
	yield "val3";
	}
});
alert(s2.size);//3

Set集合的增删改查

使用add()增加值,使用has()查询,通过size取得元素数量,以及使用delete()删除元素、clear()清空元素

//构造方法创建Set集合
const s = new Set();

//has()方法查询
alert(s.has("Mart");//false
alert(s.size);//0

//add()方法增加
s.add("Mart")
 .add("Frisiable");
 
alert(s.has("Mart");//true
alert(s.size);//2

//delete()方法删除
s.delete("Mart");
alert(s.has("Mart");//false
alert(s.has("Frisiable");//true
alert(s.size);//1

//clear()方法清空Set集合内的所有元素
s.clear();
alert(s.has("Mart");//false
alert(s.has("Frisiable");//false
alert(s.size);//0

2.顺序与迭代

1.基本的迭代方法

Set集合会维护元素插入时的顺序,因此支持按顺序迭代!
Set集合取得迭代器的方法

第一种 “集合 [Symbol.iterator]” 方法
第二种 “集合.values()”方法
第三种 “集合.keys()”方法

const s = new Set(["val1","val2","val3"]);//true

alert(s.values ===s[Symbol.iterator]);//true
alert(s.keys ===s[Symbol.iterator]);//true

for(let value of s.values()){
	alert(value);
}
//val1
//val2
//val3

for(let value of s[Symbol.iterator]()){
	alert(value);
}
//val1
//val2
//val3

2.特殊的迭代方法

集合的entries()方法返回一个迭代器,这个迭代器按照元素的插入顺序返回包含两个元素的数组,这两个元素是集合中每个值的重复出现:

const s = new Set(["val1","val2","val3"]);

for(let el of s.entries()){
 console.log(el)
}
//["val1","val1"]
//["val2","val2"]
//["val3","val3"]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值