一、Map 基本操作
1、key是基本类型
//key是基本类型
let map=new Map();
map.set('name','xiaozhi');
map.set('age',26);
map.set('sex','男');
console.log("姓名:"+map.get('name'));
console.log("年龄:"+map.get('age'));
console.log("性别:"+map.get('sex'));
let map=new Map();
let obj={};
map.set(obj,'set一个对象');
console.log(map.get(obj));
// key是函数
let map=new Map();
let func=function(){};
map.set(func,'set一个函数');
console.log(map.get(func));
// key是NaNlet
map=new Map();
map.set(NaN,'NaN');
console.log(map.get(NaN));
console.log(map.get(Number('aaa')));
// Map迭代 for ...of
let map=new Map();
map.set('name','王五');
map.set('age',23);
map.set('sex','女');
for(let [key,value] of map){
console.log(key,value)
}
// Map迭代 查询所有key
let map=new Map();
map.set('name','王五');
map.set('age',23);
map.set('sex','女');
for(let key of map.keys()){
console.log(key)
}
// Map迭代 查询所有value
let map=new Map();
map.set('name','王五');
map.set('age',23);
map.set('sex','女');
for(let value of map.values()){
console.log(value)
}
// Map迭代 forEach方法迭代
let map=new Map();
map.set('name','王五');
map.set('age',23);
map.set('sex','女');
map.forEach(function(value,key){
console.log(key,value)
});
数组转Map
let arr=[['k1','v1'],['k2','v2']];
let map=new Map(arr);
map.forEach(function(value,key){
console.log(key,value)
});
Map转数组
let map=new Map();
map.set('name','王五');
map.set('age',23);
map.set('sex','女');
let arr=Array.from(map);
console.log(arr);
let map1=new Map();
map1.set('name','王五');
map1.set('age',23);
map1.set('sex','女');
let map2=new Map();
map2.set('id','1');
map2.set('address','北京市海淀区');
map2.set('phone','13211111111');
let map3=new Map([...map1,...map2]);
console.log(map3)
let set=new Set();
set.add('张三');
set.add('李四');
set.add('张三');
console.log(set);
for of 方式遍历
let set=new Set();
set.add('张三');
set.add('李四');
set.add('王五');
for(let value of set.values()){
console.log(value)
}
forEach 方式遍历
let set=new Set();
set.add('张三');
set.add('李四');
set.add('王五');
set.forEach(function(value){
console.log(value)
});
数组 转Set
let arr3=[['k1','v1'],['k2','v2']];
let set3=new Set(arr3);
console.log(set3)
set转数组
let set=new Set();
set.add('张三');
set.add('李四');
set.add('王五');
let arr=[...set];
console.log(arr)
let arr=[1,3,5,3,6];
let set=new Set(arr);
let arr1=[...set];
console.log(arr1)
let a = new Set([1, 2, 3]);
let b = new Set([4, 3, 2]);
let union = new Set([...a, ...b]); // {1, 2, 3, 4}
console.log(union)`在这里插入代码片`
let a2 = new Set([1, 2, 3]);
let b2 = new Set([4, 3, 2]);
let intersect = new Set([...a2].filter(x => b2.has(x))); // {2, 3}
console.log(intersect)
let a3 = new Set([1, 2, 3]);
let b3 = new Set([4, 3, 2]);
let difference = new Set([...a3].filter(x => !b3.has(x))); // {1}
console.log(difference)