ES6中set和map

一.set和map数据结构

1.set
集合:可以存储任何数据类型,并且是唯一的(不重复的值)
例:
const set1 = new Set();
①添加数据 add

//往set1中添加数据
set1.add(100);
set1.add("A String");
set1.add({name:"Henry"});
set1.add(true);
set1.add(100);       //不可以重复添加,无作用
console.log(set1);
//打印结果:100、A String、Object、true

②计算set中的数据个数 size

console.log(set1.size);

③检查set中是否拥有对应的值 has

console.log(set1.has(100));   
//如果有 返回值为true;否则为false

console.log(set1.has({name:"Henry"}));  
//返回值为false 
//匹配的是地址,不是对象,地址是唯一的,所以为false

⑤删除set中的内容 delete

set1.delete(100);
console.log(set1);

for ... of 遍历set

for(let item of set1){
	console.log(item);
}

forEach 遍历

set1.forEach((value) =>{
    console.log(value);
})

⑧将set转换为数组array

const setArray = Array.from(set1);
console.log(setArray);

2.map
键值对:与对象不同的是 键和值可以是任何类型
例:
const map1 = new Map();
①设置key值

const key1 = 'some string',
      key2 = {},
      key3 = function(){};

②为key设置value值

map1.set(key1,'value of key1');
map1.set(key2,'value of key2');
map1.set(key3,'value of key3');

③根据key获取相应的value值 get

console.log(map1.get(key1),map1.get(key2),map1.get(key3));
//打印结果为
value of key1  
value of key2  
value of key3

④获取对应的value数量 size

console.log(map1.size);
//打印结果为3

for...of遍历map1中的key and value

for(let [key,value] of map1){
    console.log('${key} = ${value}');
}

for...of遍历map1中的key

for(let key of map1.keys()){
    console.log(key);
}
//打印结果为
some string
{}
ƒ (){}

for...of遍历map1中的value

for(let value of map1.values()){
    console.log(value);
}
//打印结果为
value of key1  
value of key2  
value of key3

forEach遍历map1

map1.forEach((value,key) => {
    console.log('${key} = ${value}');
})

⑨将map1转化为正常的数组 from

const keyValueArray = Array.from(map1);
console.log(keyValueArray);

⑩将map1中的key转化为数组

const keyArray = Array.from(map1.keys());
console.log(keyArray);

⑪将map1中的value值转化为数组

const valueArray = Array.from(map1.values());
console.log(valueArray);
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值