Set数据结构
一、Set简介
set中成员的值都是唯一的,没有重复的值
向set中添加成员时,不会发生类型转换
向set中添加的对象总是不想等
二、常用的属性和方法
属性:
size:返回set实例的成员总数
<script type="text/javascript">
const set=new Set();
//向set中添加成员
set.add(1);
set.add(2);
set.add(3);
//链式方法
set.add(4).add(5).add(6);
console.log(set.size);//6
</script>
方法:
add():添加某个值,返回set本身
delete():删除某个值,返回一个布尔值,判断删除是否成功
has():返回一个布尔值,表示该值是否为set成员
clear():清除所有成员,没有返回值
keys():返回键名的遍历器
values():返回键值的遍历器
entries():返回键值对的遍历器
forEach():使用回调函数遍历每个成员
<script type="text/javascript">
const set=new Set();
//向set中添加成员
set.add(1);
set.add(2);
set.add(3);
//链式方法
set.add(4).add(5).add(6);
console.log(set.size);//6
console.log(set.has(1));//true
set.delete(1);
console.log(set.has(1));//false
set.clear();//清空全部set成员
console.log(set.size);//0
</script>
<script type="text/javascript">
let set=new Set(['red','blue','green']);
//遍历全部的key
for(let key of set.keys()){
console.log(key);//red,blue,green
}
//遍历全部的value
for(let value of set.values()){
console.log(value);//red,blue,green
}
//遍历全部的key和value
for(let item of set.entries()){
console.log(item);//['red','red'],['blue','blue'],['green','green']
}
set.forEach((key,value)=>{
console.log(key+':'+value);
})
</script>
例子(数组去重)
var arr = [1, 2, 2, 5, 1, 4]
// const newArr = [...new Set(arr)]
const newArr = Array.from(new Set(arr))
console.log(newArr)
Map简介
es6中的map很大程度上和set相似,但是map是以键值对的形式存储数据的
二、常用的属性和方法
属性:
size:返回map结构的成员总数
方法:
set(key,value):设置键名key对应的键值value,然后返回整个map结构,如果key已经有值,则键值会被更新,否则就新生成该键
get(key):读取key对应的键值,如果找不到key,则返回undefined
has(key):返回一个布尔值,表示某个键是否在当前map对象中
delete(key):删除某个key,返回true,如果删除失败,返回false
clear():清除所有成员,没有返回值
keys():返回键名的遍历器
values():返回键值的遍历器
entries():返回键值对的遍历器
forEach():遍历map的所有成员
//set(key,value)链式写法
myMap.set(1,'a').set(2,'b').set(3,'c');
console.log(myMap);//1=>a,2=>b,3=>c
//get(key):
map.set(hello,'es6');//键是函数
console.log(map.get(hello));//es6
<script type="text/javascript">
const map=new Map();
//向map中添加成员
map.set(1,'a');
map.set(2,'b');
map.set(3,'c');
//遍历全部的键
for(let key of map.keys()){
console.log(key);//1,2,3
}
//遍历全部的值
for(let values of map.values()){
console.log(values);//a,b,c
}
//遍历全部的键和值
for(let [key,value] of map.entries()){
console.log(key,value);//1=>a,2=>b,3=>c
}
for(let item of map.entries()){
console.log(item[0],item[1]);//1=>a,2=>b,3=>c
}
for(let [key,value] of map){
console.log(key,value);//1=>a,2=>b,3=>c
}
map.forEach(function(value,key){
console.log(key,value);
})
</script>
map转为数组(利用扩展运算符…)
const map=new Map();//创建map数据结构
map.set(true,7);//向map中添加成员
map.set({foo:3},['abc']);
console.log([...map]);//[[true,7],[{foo:3},['abc']]];
详细内容请参考https://www.cnblogs.com/jjgw/p/11561169.html
内容仅供学习参考,若有错误欢迎大家指正----WUCASE