• Set方法


    基本使用

    new Set([iterable])接受一个数组,(或者具有iterable接口的其他数据结构),返回一个新的Set对象

    const set = new Set([1,2,1,2])
    console.log(set) // {1,2} 
    
    • 1
    • 2

    上面代码可以看出Set是可以去除数组中的重复元素

    属性及方法

    属性
    • size:返回集合中所包含的元素的数量
    console.log(new Set([1,2,1,2]).size) // 2
    
    • 1
    操作方法
    • add(value):向集合中添加一个新的项
    • delete(value):从集合中删除一个值
    • has(value):如果值在集合中存在,返回true,否则返回false
    • clear(value):移除集合中的所有项
    let set = new Set()
    set.add(1)
    set.add(2)
    set.add(2)
    set.add(3)
    console.log(set) // {1,2,3}
    set.has(2) // true
    set.delete(2)  
    set.has(2) // false
    set.clear() 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    遍历方法
    • keys():返回键名的遍历器
    • values():返回键值的遍历器
    • entries():返回键值对的遍历器
    • forEach():使用回调函数遍历每个成员
    let set = new Set([1,2,3,4])
    
    // 由于set只有键值,没有键名,所以keys() values()行为完全一致
    console.log(Array.from(set.keys())) // [1,2,3,4]
    console.log(Array.from(set.values())) // [1,2,3,4]
    console.log(Array.from(set.entries())) //  [[1,1],[2,2],[3,3],[4,4]]
    
    set.forEach((item) => { console.log(item)}) // 1,2,3,4
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    应用场景

    // 数组去重
    let arr = [1, 1, 2, 3];
    let unique = [... new Set(arr)];
    
    let a = new Set([1, 2, 3]);
    let b = new Set([4, 3, 2]);
        
    // 并集
    let union = [...new Set([...a, ...b])]; // [1,2,3,4]
        
    // 交集
    let intersect = [...new Set([...a].filter(x => b.has(x)))]; [2,3]
        
    // 差集
    let difference = Array.from(new Set([...a].filter(x => !b.has(x)))); [1]
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
  • 相关阅读:
    人工智能5:构建基于iris 数据集的 SVM 分类模型,含有 iris.csv
    LeetCode第225题—用队列实践栈
    MCE | HPV 疫苗要不要打?
    (附源码)计算机毕业设计SSM教务管理系统
    【002】数组少不了
    Netty源码编译
    常用设计模式-详解
    STP---生成树协议
    MySQLJDBC入门与SQL注入
    Set、Map、WeakSet 和 WeakMap 的区别?
  • 原文地址:https://blog.csdn.net/ScumStudy/article/details/128084080