zoukankan      html  css  js  c++  java
  • set/ weakset/ map/ weakmap

    set

    set是ES6中一个新的数据结构,set的使用和数组是类似的,区别就是,set里没有重复项

     

    使用

    let set = new Set([13,3,4,5])
    set.add(3)
    // 获取set中值的时候,需要先转成数组在取获取
    // set里的元素是不会重复的

    常用的api

    • add
    • delete
    • has
    • clear

     

    size

    set里由size属性,可以获取set的长度

     

     

    set的遍历

    可以通过forEach遍历set。 set里的key和value是一样的

     

    script>
        var set = new Set([1, 2, 1, 3, 5, 2, 3, 4, 5, 3, 6, 7, 6])
    
        //set.add()  添加
        console.log(set.add(8))
        //set.delete()  删除
        console.log(set.delete(7))  //true
        console.log(set)
        // set的长度
        console.log(set.size)   //7
        // set.has()   有就返回true  没有返回false
        console.log(set.has(7))  //false
        //set.clear()  清空
    
    
        //遍历器
        console.log(set.entries())
        let iterator = set.entries()
        
        console.log(iterator.next())
        console.log(iterator.next())
        console.log(iterator.next())
        console.log(iterator.next())
        console.log(iterator.next())
        console.log(iterator.next())
        console.log(iterator.next())
        console.log(iterator.next())
        console.log(iterator.next())
    
    
        //forEach
        set.forEach(item=>{
            console.log(item)
        })
    </script>

     

    weakset

    创建

    new WeakSet()

    weakset中的每一项都是引用类型

    • add
    • delete
    • has
    • clear

     

    <script>
        //引用类型
        let weakset = new WeakSet([{'name':'zs'},{'age':15}])
        console.log(weakset)
    </script>

      Map 

    存储键值对的

    let map = new Map([[key,value],[key2,value2]])
    
    map.set(key,value)
    map.get(key)
    map.delete(key)
    map.has(key)
    map.clear()
    // map中key可以是任意的属性,比如数字、字符串、对象、bool...

    遍历map

    map.forEach((value,key)=>{
        
    })
    <script>
        let map = new Map([['key', '这是一个键值'], ['name', '寒霜']])
        console.log(map)
        console.log(map.get('key'))
        console.log(map.get('name'))
        //键也可以是数字
        //set()
        map.set('3', '123')
        console.log(map.get('3'))
        //键也可以是boolean
        map.set(true, '4656')
        console.log(map.get(true))
        //键也可以是对象
        let obj = { 'name': 'ws' }
        map.set(obj, '键也可以是对象')
        console.log(map.get(obj))
        // 键也可以是symbol
        let symbol = Symbol('')
        map.set(symbol, '键也可以是symbol')
        console.log(map.get(symbol))
        console.log(map.size)
        map.delete(symbol)
        console.log(map.get(symbol))
        console.log(map.has(obj))  //true
        //map.clear()清空
    
        // 遍历器
        // map.entries()
        let map1 = new Map();
        map1.set('键1', '值1')
        map1.set('键2', '值2')
        map1.set('键3', '值3')
        map1.set('键4', '值4')
        map1.set('键5', '值5')
        map1.set('键6', '值6')
        console.log(map1.entries())
        map1.forEach((value,key)=>{
            console.log(value+'=>key是:'+key)
        })
    </script>

    WeakMap

    WeakMap的键只能是引用类型

    new WeakMap()

    • set
    • get
    • delete
    • has
    • clear

     

    <script>
        //weakmap 的key 只能是引用类型
        let weakmap = new WeakMap([[{'name':'zsx'},'value']]);
        console.log(weakmap)    
    </script>
    

      

  • 相关阅读:
    使用可传输表空间向rac环境迁移数据
    跨平台表空间传输(linux 10g表空间跨平台迁移到window 11g
    RAC+ASM在单机上恢复的过程
    Oracle RMAN进行的一次有益测试
    ORA-00600 4194 错误
    oracle表分区详解
    数据库最大连接数
    web传参
    内置
    键盘事件
  • 原文地址:https://www.cnblogs.com/guirong/p/13611150.html
Copyright © 2011-2022 走看看