处理集合_创建第1个map
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>创建第一个Map</title>
<script src="../unitl/test.js"></script>
<style>
#results li.pass {color:green;}
#results li.fail {color:red;}
</style>
</head>
<body>
<div id="firstElement"></div>
<div id="secondElement"></div>
<ul id="results"></ul>
</body>
<script>
//使用Map构造函数创建map
const ninjaIslandMap = new Map();
//定义3个ninja对象
const ninja1 = {name:"Yoshi"};
const ninja2 = {name:"Hattori"};
const ninja3 = {name:"Kuma"};
//使用Map的set方法,建立两个ninja对象的映射关系。
ninjaIslandMap.set(ninja1,{homeIsland:"Honshu"});
ninjaIslandMap.set(ninja2,{homeIsland:"Hokkaido"});
//使用Map的get方法,获取ninja对象。
assert(ninjaIslandMap.get(ninja1).homeIsland==="Honshu","The first mapping work");
assert(ninjaIslandMap.get(ninja2).homeIsland === "Hokkaido","The second mapping works");
//验证map中只存在前两个对象的映射,不存在第3个映射关系。
assert(ninjaIslandMap.get(ninjaIslandMap.get(ninja3))===undefined,
"There is no mapping for the third ninja!");
//验证map中只存在前两个对象的映射,不存在第3个对象的映射。
assert(ninjaIslandMap.size === 2,"We've created two mapping");
//使用has方法验证map中是否存在指定的key.
assert(ninjaIslandMap.has(ninja2),"We have mappings for the first twp ninjas");
assert(!ninjaIslandMap.has(ninja3),"But not for the third ninja!");
//使用delete方法从map删除key。
ninjaIslandMap.delete(ninja1);
assert(!ninjaIslandMap.has(ninja1) && ninjaIslandMap.size === 1,"There's no first ninja mapping anymore!");
console.log(ninjaIslandMap);
//使用clear方法完全清空map
ninjaIslandMap.clear()
assert(ninjaIslandMap.size ===0,"All mapping have been cleared");
</script>
</html>
本例子中引入的js: test.js
在本例中,我们调用Map构造函数创建Map:
const ninjaIslandMap = new Map();
然后,创建3个ninja对象,分别命名为ninja1,ninja2,ninja3。使用set方法。
ninjaIslandMap.set(ninja1,{homeIsland:"Honshu"});
接下来,通过get方法获取前两个ninja对象的映射。
assert(ninjaIslandMap.get(ninja1).homeIsland === "Honshu","The first mapping works");
只有前两个ninja对象存在映射,第3个对象不存在映射,因为第三个对象没有被set调用。除了get和set方法之外,map还具有size属性以及has,delete方法。size属性告诉我们创建了多少个映射。在本例,我们创建了两个映射。
has方法用于判断指定的key是否存在:
ninjaIslandMap.has(ninja1) //true
ninjaIslandMap.has(ninja3); //false
delete 方法可用于删除映射:
ninjaIslandMap.delete(ninja1);