ES6学习笔记(四)

159 阅读1分钟

一、集合Set

ES6 提供了新的数据结构Set(集合)。它类似数组,但成员的值都是唯一的,集合实现了iterator接口,所以可以使用 扩展运算符for...of 进行遍历

集合的属性和操作

  • size 集合大小
  • has 判断集合是否含有某个元素
  • add 添加元素
  • delete 删除某个元素
  • clear 清空集合
  • [...new Set(arr)] 对arr数组进行去重操作
        let s2 = new Set(['tom', 'jerry','shuke','beita','jerry']);
        console.log(s2) // 会自动去重 
        console.log(s2.size) // 5
        // 添加
        s2.add('红孩儿')
        console.log(s2)
        // 删除
        s2.delete('shuke')
        console.log(s2)
        // 检测元素是否存在
        const result = s2.has('beita')
        console.log(result)
        // 清空
        let result2 = s2.clear()
        console.log(s2)

        let s3 = new Set(['tom', 'jerry','shuke','beita','jerry','哪吒']);
        for(let item of s3){
            console.log(item)
        }

集合的实践

        let arr = [1,2,3,4,5,6,2,3]
        let arr2 = [4,5,6,5,6,7]
        // 数组去重 放入Set,然后利用扩展运算符将Set转换为数组
        let result = [...new Set(arr)]
        console.log(result)

        // 交集
        let result2 = [...new Set(arr)].filter((item)=>{
            return new Set(arr2).has(item)
        })
        console.log(result2)

        // 并集
        let union= [...arr,...arr2]
        let s3 = new Set(union)
        console.log([...s3])

        // 差集
        let diff = [...new Set(arr)].filter((item)=>{
            return !(new Set(arr2).has(item))
        })
        console.log(diff)

二、Map

ES6 提供了新的数据结构Map。它类似于对象,也是键值对的集合,但“键”的范围不限于字符串,各种类型的值(包括对象)都可以当做键。Map也实现了iterator接口,所以可以使用 扩展运算符 和 for...of 进行遍历。

Map的属性和方法:

  • size 返回Map的元素个数
  • set 增加一个新元素
  • get 返回键名对象的键值
  • has 监测Map中是否包含某个元素,返回boolean值
  • clear 清空集合,返回undefined