一、Map结构数组
Map为“键值对”的数据结构数据结构
const m = new Map();
二、构造函数函数
做为构造函数,Map 也能够接受一个数组做为参数。该数组的成员是一个个表示键值对的数组。spa
const map = new Map([ ['name', '张三'], ['title', 'Author'] ]); map.size // 2
map.has('name') // true
map.get('name') // "张三"
map.has('title') // true
map.get('title') // "Author"
三、键code
Map 的键其实是跟内存地址绑定的,只要内存地址不同,就视为两个键。blog
若是 Map 的键是一个简单类型的值(数字、字符串、布尔值),则只要两个值严格相等,Map 将其视为一个键three
四、set内存
set
方法设置键名key
对应的键值为value
,而后返回整个 Map 结构。若是key
已经有值,则键值会被更新,不然就新生成该键。字符串
set结构的新增成员为add方法,其余方法如has、delete、clear同样。get
五、get(key)
六、遍历方法
keys():返回键名的遍历器。
values():返回键值的遍历器。
entries():返回全部成员的遍历器。
forEach():遍历 Map 的全部成员。
for (let item of map.entries()) { console.log(item[0], item[1]); } // "F" "no" // "T" "yes"
// 或者
for (let [key, value] of map.entries()) { console.log(key, value); } // "F" "no" // "T" "yes"
// 等同于使用map.entries()
for (let [key, value] of map) { console.log(key, value); } // "F" "no" // "T" "yes"
七、转为数组
Map 结构转为数组结构,比较快速的方法是使用扩展运算符(...
)。
const map = new Map([ [1, 'one'], [2, 'two'], [3, 'three'], ]); [...map.keys()]
set结构也是这样转换为数组。
八、forEach
map.forEach(function(value, key, map) { console.log("Key: %s, Value: %s", key, value); });
注:forEach的回调函数第一个参数为value,第二个为key。
set结构具备foreach方法。
总结:与set结构的方法区别有构造函数和新增函数(add/set)