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>
    

      

  • 相关阅读:
    Raid磁盘阵列更换磁盘时另一块盘离线恢复案例(v7000存储数据恢复)
    服务器SQL server数据库被加密恢复方案
    Vsan分布式文件系统逻辑架构损坏恢复过程
    Linux服务器数据恢复案例,服务器瘫痪数据恢复成功
    数据库执行truncate table CM_CHECK_ITEM_HIS
    服务器ocfs2文件系统被误格式化的数据恢复过程
    内蒙古某公司XFS文件系统服务器数据恢复报告
    关于vsan分布式服务器数据恢复成功案例分享
    北京某公司存储数据恢复成功案例;存储崩溃数据恢复方法
    IBM X3850服务器数据恢复成功案例
  • 原文地址:https://www.cnblogs.com/guirong/p/13611150.html
Copyright © 2011-2022 走看看