zoukankan      html  css  js  c++  java
  • Set集合

    Set集合,本质上就是对数组的一种包装

    例如:
     
    let imgs = new Set();
    imgs.add(1);
    imgs.add(1);
    imgs.add(5);
    imgs.add("5");
    imgs.add(new String("abc"));
    imgs.add(new String("abc"));
     
    打印的结果:
    1  5  '5'  'abc'  'abc'
     
    Set集合是默认去重复的,但前提是两个添加的元素严格相等
    所以5和"5"不相等,两个new出来的字符串不相等
     
    如何删除元素 set.delete(key)
    imgs.delete(5);
     
    imgs.delete('5');
     
    关于遍历的方法
    由于Set集合本质上还是一个map,因此会有以下几种奇怪的遍历方法
    var imgs = new Set(['a','b','c']);
     
    根据key遍历
    for(let item of imgs.keys()){
         console.log(item);
    }
    //a
    //b
    //c
     
    根据value遍历
    for(let item of imgs.values()){
         console.log(item);
    }
    //a
    //b
    //c
     
    根据key-value遍历
    for(let item of imgs.entries()){
         console.log(item);
    }
    //['a','a']
    //['b','b']
    //['c','c']
     
    普通for...of循环(for...of跟for-in的区别很明显,就是直接取值,而不再取下标了)
    for(let item of imgs){
         console.log(item);
    }
    //a
    //b
    //c
     
    set集合没有提供下标方式的访问,因此只能使用for来遍历。
     
    下面展示了一种极为精巧利用set集合对数组去重的方法
    var newarr = [...new Set(array)];
  • 相关阅读:
    apscheduler 踩坑
    fastapi 导出excel文件
    python flask 使用日志
    git 头指针游离问题
    C# 连接mysql填坑
    前端项目proxy小问题
    需完善--日志框架
    依赖<dependency>的scope了解
    git 退回到指定tag版本
    git切换远程仓库地址
  • 原文地址:https://www.cnblogs.com/sunyang-001/p/10794116.html
Copyright © 2011-2022 走看看