美文网首页
6. ES6新增数据存储类型 Set Map

6. ES6新增数据存储类型 Set Map

作者: yaoyao妖妖 | 来源:发表于2020-10-14 13:31 被阅读0次

    ES6 中新增的存储数据Set 储存的数据必须是唯一的,如果重复,他会自动帮你过滤掉

    // Set  可遍历的对象
    let s = new Set()
    // let s = new Set([1, 2, 3, 4])
    // s.add('hello')
    // s.add('goodbye')
    s.add('hello').add('goodbye').add('hello')
    // 删除指定数据 && 数据的清空
    s.delete('hello')
    s.clear()
    
    // 查找
    console.log(s.has('hello2'), s.size)
    // get 所有的 keys values 键值对
    console.log(s.keys())
    console.log(s.values())
    console.log(s.entries())
    s.forEach(item => {
       console.log(item)
     })
     for (let item of s) {
       console.log(item)
     }
    //没有改操作,如果需要就先删除在添加
    

    ES 6 中新增的存储数据MAP 字典, key类型可以是任意类型,键的顺序是set的顺序遍历的,性能更有优势

    // let map = new Map([[1, 2], [3, 4]])
    let map = new Map()
    let map1 = new Map([[1,2],[3,4]]); //键值对
    map.set(10, 2)
    map.set(3, 'value-4')
    map.set(1, 'value-3')
    // 删除
     map.delete(1)
     map.clear()
     console.log(map.size)
     console.log(map.has(2))
     console.log(map.get(1))
     console.log(map.keys(), map.values(), map.entries())
    // 遍历
     map.forEach((value, key) => {
       console.log(value, key)
     })
     for (let [key, value] of map) {
      console.log(key, value)
     }
     let o = function () {
       console.log('o')
     }
     map.set(o, 4)
     console.log(map.get(o))
    

    对象的复制

    const target = {
      a: {
        b: {
          c: {
            d: 9
          }
        },
        e: 5,
        f: 6,
        h: 10
      }
    }
    const source = {
      a: {
        b: {
          c: {
            d: 1
          }
        },
        e: 2,
        f: 3
      }
    }
    Object.assign(target, source) // 浅复制,值类型,替换,引用类型,指针复制(指针指向变化)
    // null  undefined
    // 
    console.log(target)
    // WeakSet,WeakMap
    

    学习视频记录

    相关文章

      网友评论

          本文标题:6. ES6新增数据存储类型 Set Map

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