Map - JavaScript 键值对

键值对

有没有遇到过在JavaScript中使用键值对的场景,键值对在C# Java 语言中是非常主流的概念,但是在JavaScript中,开发人员却面临一个挑战,大多数情况下,要使用自定义类型来解决这个问题.Map就是为了到达相同目的而设计的.

直接看代码,创建一个Map对象并且在示例中使用它.

1
2
3
4
5
6
7
8
var myMap = new Map();  
var key1 = "key1",key2="key2",key3="key3";
myMap.set(key1, "value for key1");
myMap.set(key2, 'value for key2');
myMap.set(key3, 'value for key3');
console.log(myMap.get(key1));
console.log(myMap.get(key2));
console.log(myMap.get(key3));

第一步,创建了Map对象,然后创建三个变量,然后给Map对象设置键值.

设置键值的语法

1
object.set(<key>, <value>);

正如示例中一样,给Map对象设置键值,然后输出键对应的值.

取值的语法

1
object.get(<key>) ;

上面的示例输出的结果是:

1
2
3
value for key1
value for key2
value for key3

通过移除Map中所有的键值对来清空Map对象,清空的语法:

1
myMap.clear();

通过object.clear()将清空Map中所有的值.
如果再次执行以下代码:

1
2
3
console.log(myMap.get(key1));  
console.log(myMap.get(key2));
console.log(myMap.get(key3));

输出的结果将会是:

1
2
3
undefined
undefined
undefined

那么如何从Map中删除特定的键呢.
我们先初始化Map,然后删除key2

1
2
3
4
5
myMap.set(key1, "value for key1");  
myMap.set(key2, 'value for key2');
myMap.set(key3, 'value for key3');

myMap.delete(key2);

Map中获取所有的键

1
var mapIter = myMap.keys();

最后,我们可以打印出Map中所有的键值.

1
2
3
for (var [key, value] of myMap) {  
console.log(key + ' = ' + value);
}

Map可以使用for...of循环

输出的结果:

1
2
key1 = value for with key1
key3 = value for with key3