javascript的Map()是什么?

120 阅读1分钟

new Map()

定义

键/值对的集合

语法

let mapObj = new Map();

备注

集合中的键和值可以是任何类型。如果使用现有密钥向集合添加值,则新值会替换旧值

属性

属性名说明
构造函数指定创建映射的函数
Prototype-原型为映射返回对原型的引用
size返回映射中的元素数

方法

方法名使用方式说明
setmapObj.set(key, value)set方法设置key所对应的键值,然后返回整个Map结构。如果key已经有值,则键值会被更新,否则就新生成该键
getmapObj.get(key)get方法读取key对应的键值,如果找不到key,返回undefined
hasmapObj.has(key)has方法返回一个布尔值,表示某个键是否在Map数据结构中
deletemapObj.delete(key)delete方法删除某个键,返回true,如果删除失败,则返回false
clearmapObj.clear()clear方法清除所有成员,没有返回值

使用for..of方法迭代Map

let yyMap = new Map();
yyMap.set(0, 'yydream');
yyMap.set('age', 25);
for(let [key, value] of yyMap) {
	console.log(key + " = " + value);
    // 将会显示两个log,一个是'0 = yydream' 另一个是 'age = 25'
}

for(let key of yyMap.keys()) {
	console.log(key);
    // 显示两个log, 一个是 '0', 一个是 'age'
}

for(let value of yyMap.values()) {
    console.log(value);
    // 显示两个log, 一个是 'yydream', 另一个是 25
}

for(let [key, value] of yyMap.entries()) {
    console.log(key + ' = ' + value);
    // 将会显示两个log, 一个是 '0 = yydream',另一个是 'age = 25'
}

使用forEach() 方法迭代Map

yyMap.forEach((value, key) => {
    console.log(key + ' = ' + value);
    // 将会显示两个log, 一个是 '0 = yydream',另一个是 'age = 25'
})