Map和Set

作者: An的杂货铺 | 来源:发表于2019-07-23 09:58 被阅读0次

    最新的ES6规范引入了新的数据类型Map和Set,需在支持es6的浏览器使用,Map是一组键值对的结构,具有极快的查找速度

    Map 的声明方式

    // 初始化Map需要一个二维数组,或者直接初始化一个空Map
    
    var  m = new Map();
    
    var n = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]);
    
    console.log(m);//{}
    
    console.log(n);//{"Michael" => 95, "Bob" => 75, "Tracy" => 85}
    

    Map的使用方法

    var maps = new Map();
    
    maps.set('lili','98');//添加新的key-value
    
    console.log(map);// {"lili" => "98"}
    
    var score = map.get('lili');//获取键值
    
    console.log(score);//98
    
    console.log(map.has('lili'));//true 查看是否含有某个键 返回布尔值
    
    map.delete('lili');//删除某个键
    
    console.log(map.get('lili'));//undefined
    
    // 由于一个key只能对应一个value,所以,多次对一个key放入value,后面的值会把前面的值冲掉
    

    Set和Map类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在Set中,没有重复的key

    Set的声明方式

        //要创建一个Set,需要提供一个Array作为输入,或者直接创建一个空Set
    
        var set = new Set();
    
        var aset = ([1,2,3]);
    
        console.log(set);//{}
    
        console.log(aset);//[1,2,3]
    

    重复元素在Set中自动被过滤:

        var arrone = [1,3,3,5,6,'6'];
    
        console.log(new Set(arrone));//[1,3,5,6,'6']
    
        //根据Set的这个特性可以用来给数组去重
    

    通过add(key)方法可以添加元素到Set中,可以重复添加,但不会有效果

        set.add(23);
    
        set.add(32);
    
        set.add(23);
    
        console.log(set);//[23,32]
    

    通过delete(key)方法可以删除元素

        set.delete(32)
    
        console.log(set);//[23]
    

    相关文章

      网友评论

          本文标题:Map和Set

          本文链接:https://www.haomeiwen.com/subject/ldkglctx.html