zoukankan      html  css  js  c++  java
  • ES6 Map/WeakMap

    最近项目用ES6来写,许多语法都要逐步熟悉呀,今天收藏下Map用法

    1、Map构造器

    // 字符串作为key, 和JS对象类似
    
    var map = new Map()
    
    // set
    
    map.set('name', 'John')
    
    map.set('age', 29)
    
    // get
    
    map.get('name') // John
    
    map.get('age')  // 29
    
    
    // 对象作为key演示
    
    var xy = {x: 10, y: 20}   // 坐标
    
    var wh = {w: 100, h: 200} // 宽高
    
    var map = new Map()
    
    // set
    
    map.set(xy, '坐标')
    
    map.set(wh, '宽高')
    
    // get
    
    map.get(xy) // '坐标'
    
    map.get(wh) // '宽高'
    View Code

    Map构造器还支持传数组方式

     1 var map = new Map([["name", "John"], ["age", "29"]])
     2 
     3  
     4 
     5 // 遍历key
     6 
     7 for (var key of map.keys()) {
     8 
     9     console.log(key) // name, age
    10 
    11 }
    View Code

    2. 迭代

    和Set一样用for of来迭代Map,键调用map.keys(),值调用map.values(),键值实体调用map.entries()

     1 var map = new Map()
     2 
     3 // set
     4 
     5 map.set('name', 'John')
     6 
     7 map.set('age', 29)
     8 
     9 // get
    10 
    11 map.get('name') // 'John'
    12 
    13 map.get('age')  // 29
    14 
    15  
    16 
    17 // 遍历key
    18 
    19 for (var key of map.keys()) {
    20 
    21     console.log(key)
    22 
    23 }
    24 
    25  
    26 
    27 // 遍历value
    28 
    29 for (var val of map.values()) {
    30 
    31     console.log(val)
    32 
    33 }
    34 
    35  
    36 
    37 // 遍历实体
    38 
    39 for (var arr of map.entries()) {
    40 
    41     console.log('key: ' + arr[0] + ', value: ' + arr[1])
    42 
    43 }
    44 
    45  
    46 
    47 // 遍历实体的简写
    48 
    49 for (var [key, val] of map.entries()) {
    50 
    51     console.log('key: ' + key + ', value: ' + val)
    52 
    53 }
    View Code

    3. 方法和属性

    map.clear

    map.delete

    map.entries

    map.forEach

    map.get

    map.has

    map.keys

    map.set

    map.size

    map.values

    原文:http://www.cnblogs.com/snandy/p/4519768.html

  • 相关阅读:
    推荐一个不错的在线Linux学习平台(免安装系统)
    C#基本语法知识
    GDI+ 使用LockBits和指针加快处理速度
    C#对图像像素处理的三种方式
    [转]video4linux(v4l)使用摄像头的实例基础教程与体会
    Eclipse Qt开发环境的建立
    c#图像处理基础
    [转]超酷的图像效果
    Qt开发环境的建立
    C++模版全掌握(实例)
  • 原文地址:https://www.cnblogs.com/Anlycp/p/5464760.html
Copyright © 2011-2022 走看看