关于javascript:ES6之Map

41次阅读

共计 1058 个字符,预计需要花费 3 分钟才能阅读完成。

简介

Map 映射属于关联数组,即若干个键值对的汇合。

创立一个 Map 实例

能够将一个二元数组(键值对)作为元素的数组传入构造函数,该数组内的元素会以数组程序进行解决退出到映射对象中,如果存在雷同的键,则依照 FIFO(先进先出) 准则,即前面会笼罩后面的。

const map = new Map([['key1','value1'],['key2','value2'])

实例的属性和办法

属性 / 办法 形容
map.size 映射中键值对的数量
map.has(key) 查看映射中是否含有某一个键值对
map.get(key) 获取映射中键对应的值
map.set(key,value) 增加或者批改键值对,返回 map(即能够通过. 运算符进行间断操作)
map.delete(key) 移除映射中的某一键值对
map.clear() 清空映射中的所有键值对
map.forEach(fn) 遍历映射中所有的值
map.entries() 返回一个以二元数组(键值对)作为元素的可迭代对象
map.keys() 返回一个以后映射所有键作为元素的可迭代对象
map.values() 返回一个以后映射所有值作为元素的可迭代对象

比拟 Map 与 Object

Map Object
默认值 默认不蕴含任何值,只蕴含显式插入的键 一个 Object 有一个原型,原型上的键名有可能和本人对象上设置的键名抵触
键的类型 任意 String 或 Symbol(注:你能够应用其余类型的键名,然而最终 会隐式转换为字符串)
程序性 按插入的程序 从 ES6 开始,String 和 Symbol 键是按程序保存起来的,然而通过隐式转换保留成 String 的键就是乱序的
长度 键值对个数通过 size 属性获取 键值对个数只能手动计算
迭代性 可迭代(for entry of map) 不可迭代,需借助 Object.entries()/Object.keys()/Object.values()
JSON 序列化 以关联数组即二元数组(键值对)的模式表白,这种序列化的后果的意义在于能够在通过网络等形式传输了后果后,再通过 JSON.parse 办法间接将解析后果传入 Map 构造函数 规范的对象字面量模式

例:map 的 JSON 序列化

const map = new Map();

map.set('k1','v1').set('k2','v2');

// const str = JSON.stringify(map)
const str = JSON.stringify(Array.from(map))

const map2 = new Map(JSON.parse(str))

console.log(map2)

正文完
 0