ES6

ES6学习笔记14:撒花!欢迎新数据类型Map~~~!

Posted by mieruko on 2016-12-23

前言

Map!
哈哈哈相信学过C++和Java的小伙伴都对它不陌生啦。
其实为了学好算法,这两个月我也是狂撸c++啊(捂心口),希望明年三月的pat一切顺利!!!
然后说正事!!
那个啥!!
Map,我对它最深的印象就是在c++里,它可以接受多种数据类型作为键名和键值,而不会受到像JS对象那种键只能是特定类型(字符串)的限制。

JS中的Map

其实就还是那回事!

1
2
3
4
5
6
7
8
9
10
'use strict';

let food = new Map();
let fruit = {}, cook = function() {}, dessert = "甜点";

food.set(fruit, "🍋");
food.set(cook, "🍴");
food.set(dessert, "🍩");

console.log(food);

如果你在chrome控制台输出,你会看到:

1
2
3
Map {Object {} => "🍋", 
function function => "🍴",
"甜点" => "🍩"}

哈哈哈哈,简直是对象的究极进化版本!对象也能做键了哈哈哈!!

Map的api和属性一锅端

常见api们!!
还拿上面的food开刀吧 !!

1
food.size

和set一个德性,输出长度!

1
food.get(fruit);

根据键名得到键值。

1
food.delete(dessert);

根据键名删除键值。

1
food.has(dessert);

判断food中是不是有dessert这个键。

1
2
3
food.forEach((value, key) => {
// todo
});

对food中的每个键值对进行操作,value是值, key是键名。

1
food.clear();

清空这个Map!

结语

至此,ES6中的两个重大的数据类型都说完啦哈哈哈哈。
另一个Set类型在这里 Set类型的学习笔记,嘻嘻。
马上就要新年啦。
要加油!