美文网首页
Map 和 Set

Map 和 Set

作者: gem_Y | 来源:发表于2020-04-17 17:07 被阅读0次

    学习参考: https://mp.weixin.qq.com/s/o-lhJSQBOsimtgmMLPZcMw
    https://es6.ruanyifeng.com/#docs/set-map

    Set

    \color{blue}{类似于数组,但是成员的值都是唯一的,没有重复的值}

    const set = new Set([1,2,3,4,4]);
    console.log([...set]) // [1, 2, 3, 4]
    

    可用于数组去重:

    [...new Set(array)]
    

    上面的方法也可以用于,去除字符串里面的重复字符。

    [...new Set('ababbc')].join('')
    // "abc"
    

    Array.from方法可以将 Set 结构转为数组:

    const items = new Set([1, 2 , 3, 4 , 4 ]);
    const array = Array.from(items);
    

    所以有了数组去重的另外一种方法:

    Array.from(new Set(array))
    

    另外的一些应用:

      const arr1 = new Set([1, 2, 3])
      const arr2 = new Set([4, 3, 2])
      // 并集
      const union = new Set([...arr1, ...arr2])
      // 交集
      const intersect = new Set([...arr1].filter(item => arr2.has(item)))
      // 差集
      const difference = new Set([...arr1].filter(item => !arr2.has(item)))
    
      console.log(union)
      console.log(intersect)
      console.log(difference)
    
    image.png

    Map

    \color{blue}{类似于对象,也是键值对的集合,但是“键”的范围不限于字符串,各种类型的值(包括对象)都可以当作键}

    const m = new Map();
    const o = {p: 'Hello World'};
    
    m.set(o, 'content')
    m.get(o) // "content"
    
    1. 向 Map 添加成员。作为构造函数,Map 也可以接受一个数组作为参数。该数组的成员是一个个表示键值对的数组
        const map = new Map([
          ['name', '张三'],
          ['age', 12]
        ])
        console.log(map.get('name')) // 张三
        console.log(map.get('age')) // 12
    

    相关文章

      网友评论

          本文标题:Map 和 Set

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