• JavaScript 学习13.Set 集合对象 上海


    前言

    集合是无序的,并且集合中的元素是唯一的。JavaScript ES6 提供了新的数据结构 Set, 可以创建集合对象。

    Set 集合

    创建一个set实例,使用new Set()

    const s1 = new Set();   // 空集合
    console.log(s1)   // Set(0)
    

    可以传一个数组来初始化集合对象

    const s1 = new Set([1, 2, 3]);   // 传 arry 数组
    console.log(s1)   // Set(3) {1, 2, 3}
    

    如果数组中有重复的成员,set集合会去重

    const s1 = new Set([1, 2, 3, 3]);   // 传 arry 数组
    console.log(s1)   // Set(3) {1, 2, 3}
    

    size 属性获取集合个数

    const s1 = new Set([1, 2, 3, 3]);   // 传 arry 数组
    console.log(s1)   // Set(3) {1, 2, 3}
    console.log(s1.size)   // 3
    

    集合操作

    集合对象常用的几个操作

    • .add() 在Set对象尾部添加一个元素。返回该Set对象。
    • .delete(value) 移除Set中与这个值相等的成员
    • .clear() 清空set对象内的所有成员。
    • .has(value) 判断set 中是否存在该值,返回布尔值

    .add() 添加一个成员。

    在Set对象尾部添加一个成员。返回该Set对象。

    const s1 = new Set([1, 2, 3]);   // 传 arry 数组
    console.log(s1)   // Set(3) {1, 2, 3}
    s1.add(4)
    console.log(s1)   // Set(4) {1, 2, 3, 4}
    

    .delete(value) 删除一个成员

    移除Set中与值为value元素

    const s1 = new Set([1, 2, 3]);   // 传 arry 数组
    console.log(s1)   // Set(3) {1, 2, 3}
    s1.delete(2)
    console.log(s1)   // Set(2) {1, 3}
    

    .clear() 清除所有的成员

    clear() 清除所有的成员,没有返回值

    const s1 = new Set([1, 2, 3]);   // 传 arry 数组
    console.log(s1)   // Set(3) {1, 2, 3}
    s1.clear()
    console.log(s1)   // Set(0) {size: 0}
    

    .has(value) 判断是否存在

    .has(value) 判断是否存在,返回布尔值

    const s1 = new Set([1, 2, 3]);   // 传 arry 数组
    console.log(s1)   // Set(3) {1, 2, 3}
    console.log(s1.has(3))   // true
    

    forEach方法遍历集合

    使用forEach方法遍历集合,item是集合中的成员

    const s1 = new Set(['a', 'b', 'c']); 
    s1.forEach(function(item){
        console.log(item);  // item是集合中的成员
    })
    

    forEach方法里面可以传3个参数

    • item 成员
    • index 集合中没有索引,所以index也是成员本身
    • set 遍历的set集合本身
    const s1 = new Set(['a', 'b', 'c']);   // 传 arry 数组
    s1.forEach(function(item,index,set){
        console.log(item, index, set);
        //index和set一般不需要
    })
    
    

    并集(Union)、交集(Intersect)和差集(Difference)

    Set 可以实现并集(Union)、交集(Intersect)和差集(Difference)

    let a = new Set(['a', 'b', 'c']);
    let b = new Set(['b', 'c', 'd']);
    
    // 并集
    let x = new Set([...a, ...b]);
    console.log(x)   // Set(4) {'a', 'b', 'c', 'd'}
    
    // 交集
    let y = new Set([...a].filter(x => b.has(x)));
    console.log(y)  // Set(2) {'b', 'c'}
    
    // 差集
    let z = new Set([...a].filter(x => !b.has(x)));
    console.log(z)  // Set(1) {'a'}
    

    Array.from转为数组

    把集合转成数组

    let a = new Set([1, 2, 4]);
    c = Array.from(a);
    console.log(c); //(3) [1, 2, 4]
    

    总结:与Arry数组不一样地方
    1.Set集合不可以用下标取值
    2.Set集合没有重复元素
    3.Set集合没有length属性而是size
    4.Set集合可以通过Array.from转为数组

  • 相关阅读:
    SDN第三次作业
    SDN第二次上机作业
    SDN第二次作业
    第七次作业之总结篇
    第八次_计算器重构
    第六次作业之计算器图形界面化
    C++课程 second work _1025
    第五次作业--计算器项目之学习文件读取方式
    C++课程 first work
    第四次作业-计算功能的实现
  • 原文地址:https://www.cnblogs.com/yoyoketang/p/16287711.html
Copyright © 2020-2023  润新知