zoukankan      html  css  js  c++  java
  • es6笔记(5)Map数据结构

    概要

    字典是用来存储不重复key的Hash结构。不同于集合(Set)的一点,字典使用的是[key,value]的形式来存储数据。

    JavaScript的对象(Object:{})只能用字符串当做key。使用起来有一定限制。
    为了解决这个问题,ES6提供的Map数据结构。它类似与对象,也是[key,value]的集合,但是key的范围不限于字符串,各种类型的值(包括对象)都可以当做key。


    也就是说Object结构提供了 “字符串--值”的对应;
    Map提供了“值--值”的对应,是一种完善的Hash结构的实现。
    如果需要使用键值对的数据结构,Map比Object更合适。

    //对于Object只能使用字符串作为key这一点,例如一下代码。
    
    var obj = {},
        key1={b:22},
        key2={c:33};
    
    obj[key1] = 1;
    obj[key2] = 2;
    
    //此时key1,key2都会被转成字符串“[object Object]”
    console.log(obj);  //Object{[object Object] : 2} 
    

    使用

    1 创建一个Map

    const map = new Map([
        ['a',1],['b',2]
    ]);
    
    console.log(map); // {"a" => 1, "b" => 2}
    

    2 Map 类的属性

    console.log(map.size); //字典长度
    
    
    

    3 Map 类的方法

    set(key,value)

    设置一个键值对,然后返回整个Map结构。如果Key已经有值,则键值被更新,否则生成该键。
    map里面的key的排序顺序是按照添加的顺序排列的。

    map.set('jd','www.jd.com')
       .set('baidu','www.baidu.com');
    
    console.log(map);
    

    get(key)

    读取key对应的键值,如果找不到key,返回undefined。

    console.log(map.get('jd'));  //wwww.jd.com
    console.log(map.get('x'));   //undefined
    

    delete(key)

    删除某个键,成功返回true,失败返回false。

    console.log(map.delete('baidu')); // true
    console.log(map.delete('baidu')); // false
    

    has(key)

    判断某个key是否在map中存在,返回一个布尔值。

    console.log(map.has('jd')) //true
    

    clear()

    清除所有数据,无返回值

    map.clear();
    console.log(map);  // Map(0) {}
    

    keys()

    返回键名的遍历器

    const map = new Map([
        ['jd','www.jd.com'],
        ['baidu','www.baidu.com']
    ]);
    console.log(map.keys());   // MapIterator {"baidu","jd"}
    

    values()

    返回键值的遍历器

    console.log(map.values());   // MapIterator {"www.baidu.com","www.jd.com"}
    

    entries

    返回键值对的遍历器

    console.log(map.entries());   // MapIterator {['jd','www.jd.com'],['baidu','www.baidu.com']}
    

    forEach()

    使用回调函数遍历每个成员

    map.forEach(function(key,value,map){
        console.log(key + ':' + value); // baidu:www.baidu.com
    })
    
  • 相关阅读:
    re模块 与正则表达式之间的关系 一.....
    计算机硬件组成
    随便
    linux crontab定时
    linux shell命令记录
    tomcat意外退出 A valid shutdown command was received via the shutdown port. Stopping the Server instance
    mongodb设置用户
    mongodb的mongo.conf文件 启动参数
    mysql设置不区分表名大小写
    mongodb报Write failed with error code 17280 and error message 'WiredTigerIndex::insert: key too large
  • 原文地址:https://www.cnblogs.com/mcad/p/8426037.html
Copyright © 2011-2022 走看看