一.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);