Map对象保存键值对,任何值(对象或者原始值) 都可以作为一个键或一个值
key和value可以是字符串等数据类型,也可以是对象,函数,NaN。
set:insert key and value or update value.
get:otaion the value.
map的遍历方式:
for..of
for (let [key,value] of map){}
for(let key of map.keys()){}
for(let value of map.values())
forEach()
myMap.forEach(function(value,key){});
<script>
let myMap=new Map();
myMap.set("a","test1");
myMap.set("a",1)
let obj={};
myMap.set(obj,"value_obj");
let function_test=function(){};
myMap.set("func",function_test);
console.log("getFunc:"+myMap.get(obj));
console.log("-------for of---------");
for(let [key,value] of myMap){
console.log(key+"="+value);
}
console.log("------------------");
for(let key of myMap.keys()){
console.log("key"+"="+key);
}
console.log("------------------");
for(let value of myMap.values()){
console.log("value"+"="+value);
}
console.log("-------forEach---------");
myMap.forEach(function(value,key){
console.log(key+"="+value);
});
</script>
Map的操作
Map与Array的相互转换
Array转Map: let myMap=new Map(Array)
Map转Array: let myArray=Map.from(myMap)
<script>
console.log("-----Array to Map-----");
let kvArray=[["k1","value1"],["k2","value2"]];
let myMap=new Map(kvArray);
myMap.forEach(function(value,key){
console.log(key+"="+value);
});
console.log("-----Map to Array-----")
console.log(Array.from(myMap));
</script>
Map的克隆
let mapClone=new Map(mapOrigin);
<script>
let mapOrigin=new Map([["key1","value1"],["key2","value2"]]);
let mapClone=new Map(mapOrigin);
mapClone.forEach(function(value,key){
console.log(key+"="+value);
});
console.log(mapOrigin===mapClone);//false
</script>
Map的合并
let mapMerge=new Map([...map1,...map2]); 注意操作符“...”是需要的。
<script>
let map1=new Map([["1","one"],["2","two"],["3","threeqq"]]);
let map2=new Map([["3","three"],["4","four"]]);
let mapMerge=new Map([...map1,...map2]);
mapMerge.forEach(function(value,key){
console.log(key+"="+value);//false
});
</script>