1、map的基本使用,key可以是任意类型
2、Map的迭代
3、Map对象操作、map与array的相互转换
4、Set对象的唯一性
5、Set 数组转换、交集并集差集
// 基本使用 key是基本类型
console.log('基本使用 key是基本类型.............');
let map=new Map();
map.set('name','张三');
map.set('age',11);
map.set('已婚',false);
console.log(map.get('name'));
console.log(map.get('age'));
console.log(map.get('已婚'));
// key是对象
console.log('key是对象.............');
let obj={};
map.set(obj,'对象');
console.log(map.get(obj));
// key是函数
console.log('key是函数.............');
let func=function(){};
map.set(func,'函数');
console.log(map.get(func));
// key是NaN
console.log('key是NaN.............');
map.set(NaN,'NaN');
console.log(map.get(NaN));
console.log(map.get(Number('aaa')));
// Map迭代
// for ...of
console.log('Map迭代.............');
let map2=new Map();
map2.set('name','张三');
map2.set('age',11);
map2.set('已婚',false);
for(let [key,value] of map2){
console.log(key,value)
}
// 查询所有key
for(let key of map2.keys()){
console.log(key)
}
// 查询所有value
for(let value of map2.values()){
console.log(value)
}
// forEach方法迭代
map2.forEach(function(value,key){
console.log(key,value)
});
// Map对象操作
// Map与Array转换
// 数组转Map
console.log('Map对象操作、map与array的相互转换.............');
let arr=[['k1','v1'],['k2','v2']];
let map3=new Map(arr);
map3.forEach(function(value,key){
console.log(key,value)
});
// Map转数组
let arr2=Array.from(map3);
console.log(arr2);
// Map合并
let map4=new Map([...map3,...map2]);
console.log(map4);
// Set对象
// Set里的value值是唯一的
console.log('Set对象的唯一性.............');
let myMap=new Map();
myMap.set('no001','张三');
myMap.set('no002','李四');
myMap.set('no003','张三');
console.log(myMap);
let mySet=new Set();
mySet.add('张三');
mySet.add('李四');
mySet.add('张三');
// 遍历
for(let value of mySet.values()){
console.log(value)
}
mySet.forEach(function(value){
console.log(value)
});
// Set 数组转换
// 数组 转Set
console.log('Set 数组转换、交集并集差集.............');
let arr3=[['k1','v1'],['k2','v2']];
let set3=new Set(arr3);
console.log(set3);
// set转数组
let arr4=[...set3];
console.log(arr4);
// 数组去重
let arr5=[1,3,5,3,6];
let set6=new Set(arr5);
let arr6=[...set6];
console.log(arr6);
// 求并集
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)
over......
备案号:湘ICP备19000029号
Copyright © 2018-2019 javaxl晓码阁 版权所有