zoukankan      html  css  js  c++  java
  • 处理集合_创建第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);
    
  • 相关阅读:
    LUA表的引用理解
    UNITY 打包安卓APK
    UNITY打包问题
    U3D 打包时找不到tag的问题
    break prefab instance的原理
    C#调用LUA函数
    LUA 利用#遍历表的问题
    U3D笔记11:47 2016/11/30-15:15 2016/12/19
    Unity3D 预设打包的注意事项
    回调 和 覆盖
  • 原文地址:https://www.cnblogs.com/jamal/p/14081574.html
Copyright © 2011-2022 走看看