Map 对象
Map 对象保存键值对。任何值(对象或者原始值) 都可以作为一个键或一个值。
我们可以让各种类型作为map的键与值。
Maps 和 Objects 的区别
Object的键我们一般都是使用字符串或者Symbol;
Map的键可以是任意类型,如:函数、数组、对象、NAN等等。Object的长度可以通过keys或者键数组的length获得;
Map的长度直接通过属性size得到。
Map的key:
使用set函数来给map对象增加键值对,参数为(键的名称,值);
使用get函数可以获取当前键的值,参数为(键的名称);
使用delete函数可以删除当前键值对,参数为(键的名称);
使用size属性可以获取当前map对象的键值对个数。
let mapObj = new Map()
// String
mapObj.set('name',"六卿")
mapObj.set('age',18)
mapObj.set('habby',['唱歌'])
mapObj.set('loves',{
'apple':"100%",
'orange':"10%",
})
let a = ()=>{
console.log("执行了a函数")}
// fun
mapObj.set(a,a)
mapObj.set(NaN,'NaN')
console.log(mapObj.has('habby'))
console.log(mapObj.get('age'))
console.log(mapObj.size)
mapObj.get(a)()
循环Map
1.使用 for of
let mapObj = new Map()
mapObj.set('name',"六卿")
mapObj.set('age',18)
mapObj.set('habby',['唱歌'])
mapObj.set('loves',{
'apple':"100%",
'orange':"10%",
})
let a = ()=>{
console.log("执行了a函数")}
mapObj.set(a,a)
mapObj.set(NaN,'NaN')
mapObj.get(a)()
for(let key of mapObj){
console.log(key)//[name,'张俊卿'] [age,18] [habby,['唱歌']]....
}
循环的 let key为一个数组,数组的第一项为map对象的key,第二项为key对应的值。
1.使用 forEach
let mapObj = new Map()
mapObj.set('name',"六卿")
mapObj.set('age',18)
mapObj.set('habby',['唱歌'])
mapObj.set('loves',{
'apple':"100%",
'orange':"10%",
})
let a = ()=>{
console.log("执行了a函数")}
mapObj.set(a,a)
mapObj.set(NaN,'NaN')
mapObj.get(a)()
mapObj.forEach((value,key)=>{
console.log(value,key)
})
forEach传入回调函数,回调函数的第一个参数为每一项键值对的值,第二个参数为每一个键值对的键。