ES6 Map

一、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)

相关文章
相关标签/搜索