处理集合_创建第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);
原文地址:https://www.cnblogs.com/jamal/p/14081574.html