set和map数据结构
<script>
/*
* set map集合
* set 集合 里面的值必须唯一
* add set集合追加值
* set 集合没有键 只有值
* */
{
let arr=[1,1,2,2,3,3,3,4,4,5,6,3,2,7,6];
let s=new Set(arr);
console.log(s);
for(let key of arr){
s.add(key)
}
console.log([...s],s);
//... 可以将set集合可以直接转化为数组
//size set集合的长度
console.log(s.size);
//delete 删除某个值 返回值true false
console.log(s.delete(3), s);
//has 判断有那个值 返回值true false
console.log(s.has(3));
//clear 清除集合所有成员
/*s.clear();
console.log(s);*/
//set 集合遍历
//entries() 获取键值对的遍历器 对象
let str=new Set(["a","b","c"]);
for(let key of str.values()){
console.log(key);
}
console.log(str.values());
let obj=new Set();
obj.add({
name:"张三",
sex:"男"
});
for(let item of obj.entries()){
console.log(item);
}
}
/*
* map 键值对集合
* */
{
let abc=[1,2,3,4,2,4,2,5,6,7,6,7]
let m=new Map();
console.log(m);
//添加值
m.set("a",{name:"张三"});
m.set("b",{name:"李四"});
console.log(m.get("a"));
//has 判断键是否存在 返回值 true/false
console.log(m.has("a"));
//delete 删除某个键 返回值 true/false
console.log(m.delete("b"));
console.log(m);
//clear 清除map集合
//console.log(m.clear());
console.log(m.keys());
console.log(m.entries());
console.log(m.values());
for(let item of m.entries()){
console.log(item);
}
}
{
//json转map
let op={
"name":"张三",
"sex":"男"
}
let m1=new Map();
for(let key of Object.keys(op)){
m1.set(key,op[key]);
}
console.log(m1.entries());
//map转json
let json={};
for(let item of m1.keys()){
console.log(item);
json[item]=m1.get(item);
}
console.log(json);
}
</script>