zoukankan      html  css  js  c++  java
  • ES6-11学习笔记--Map

    Map:一种新的数据结构

    常用方法
    遍历
    应用场景
    WeakMap
     
    常用方法:
    let map = new Map()
    let obj = {
        name: '张三'
    }
    map.set(obj, 'zhangsan')
    console.log(map);
    console.log(map.get(obj));
    console.log(map.has(obj));
    map.delete(obj)
    
    let map2 = new Map([
        ['name', 'lisi'],
        ['age', 18],
    ])
    console.log(map2);
    console.log(map2.size);
    console.log(map2.has('name'));
    console.log(map2.get('age'));
    map2.set('name', '王五')
    map2.delete('age')
    console.log(map2);
    

      

    遍历:
    // 注意forEach里面第一个参数是value,第二个参数是key
    map2.forEach((value, key) => console.log(value, key))
    // 注意for of里面第一个参数是key,第二个参数是value
    for (let [key, value] of map2) {
        console.log(key, value);
    }
    
    for (let key of map2.keys()) {
        console.log(key);
    }
    for (let value of map2.values()) {
        console.log(value);
    }
    for (let [key, value] of map.entries()) {
        console.log(key, value);
    }
    

      

    map的应用场景跟object是一样的
    map的api跟object比多一点灵活,
    比如has方法,object只能循环判断,
    比如size属性,object也进行循环计数。
    在外资料显示,频繁对对象增删操作,map比object性能上更加有优势。
     
     
    Weakmap:
    Weakmap跟map相似,但是key只能是引用数据类型
    let wm = new WeakMap()
    wm.set([1], 2)
    wm.set({
        name: '张三'
    }, '啦啦啦')
    console.log(wm);
    

     

    wm.clear(),注意WeakMap不支持clear方法
    WeakMap也不支持遍历
    因为不可遍历,所以也没有size属性
    WeakMap也是弱引用,垃圾回收机制被回收后,弱引用里面的键值对也会消失,放置内存泄露
     
     
     
    放弃安逸,持续努力——成长
  • 相关阅读:
    delegate
    Event
    SQL:删除重复数据,只保留一条
    c#符号
    linux下vim命令详解【转】
    Probabilistic latent semantic analysis【转】
    Ubuntu下如何使用虚拟机安装WindowsXP?(2)【转】
    C文件操作fopen打开标记设置问题【学习笔记】
    Plate notation【转】
    最大似然估计(Maximum likelihood estimation) 【转】
  • 原文地址:https://www.cnblogs.com/MarsPGY/p/14828422.html
Copyright © 2011-2022 走看看