Map数据结构类似于对象,是键值对的集合,传统的键只能用字符串,Map的键不限于字符串,各种类型的值(包括对象)都可以当做键。Map 对象保存键值对,并且能够记住键的原始插入顺序。任何值(对象或者原始值) 都可以作为一个键或一个值,当有重复的key和newValue插入时,会覆盖前面key对应的oldValue
创建一个Map对象
const map = new Map()
设置map对象的值
const map = new Map()map.set('name',"html")map.set('id',1001)console.log(map)
size属性
// 返回Map结构的成员总数const map = new Map()map.set('name',"html")map.set('id',1001)console.log(map.size)
根据key获取对应的value
console.log(map.get("name")) // html
查找Map对象是否具有某key
console.log(map.has('name')); // true
删除某key-value
map.delete('id')/* map.delete("key1") // true 删除成功 map.delete("key4") // false 不存在key="key4"*/
清除成员 clear
// 将这个map中的所有元素删除map.clear()
使用for…of遍历
for(let [key,value] of map){ console.log(key,value)}for(let key of map.keys()){ console.log(key)}for(let value of map.values()){ console.log(values)}
使用forEach方法遍历
// forEach (第一个参数为value,第二个为key)map.forEach((value,key)=>{ console.log(key,value)})
entries( )
entries()方法 返回键值对的遍历器返回一个新的包含 [key, value]的 Iterator对象,返回的迭代器的迭代顺序与 Map对象的插入顺序相同。注意:
let map = new Map()map.set('age',4)let objKey = {p:'antzone'}map.set(objKey,'蚂蚁部落')for(const item of map.entries()){ console.log(item) // ['age',4] [{p:'antzone'},'蚂蚁部落']}
练习— 数组去重
const nums =[2,7,11,2,15]const map = new Map()nums.forEach((value,index)=>{ map.set(value,index)})// 使用Array.from()将伪数组转化为数组const arr = Array.from(map.keys())console.log(arr); // [2,7,11,15]