当前位置: 首页 > news >正文

ES6入门---第三单元 模块四:Set和WeakSet

set数据结构:
    类似数组,但是里面不能有重复值,如果有,只显示一个

set用法:

    let setArr = new Set(['a','b']);

    setArr.add('a');   往setArr里面添加一项

let setArr = new Set().add('a').add('b').add('c');

    setArr.delete('b');    删除一项

    setArr.has('a')    判断setArr里面有没有此值

    setArr.size    个数

    setArr.clear();    清空

循环:

a)

let setArr = new Set(['a','b','c','d']);for(let item of setArr){//默认就是valueconsole.log(item);}

b). for(let item of setArr.keys()){console.log(item);}
c). for(let item of setArr.values()){}
d). for(let [k,v] of setArr.entries()){}

e). setArr.forEach((value,index) =>{
                    console.log(value, index);
                });

作用:

1、去重 

let arr = [1,2,3,4,5,6,7,6,5,4,3,2,1,2,3,4,4];let newArr = [...new Set(arr)];console.log(newArr);

补充:

1、让set数据结构变成数组:
    [...set]

2、想让set使用数组的,map循环和filter:

let set = new Set([1,2,3]);let set2 = new Set();for(let value of set.values()){set2.add(value*2);}console.log(set2);

 map() 方法返回一个新数组,数组中的元素为原始数组元素调用函数处理后的值。

let set = new Set([1,2,3]);set = new Set([...set].map(val=>val*2));console.log(set);

filter() 方法创建一个新的数组,新数组中的元素是通过检查指定数组中符合条件的所有元素。

let set = new Set([1,2,3,4,5,6]);set = new Set([...set].filter(val=>val%2==0));console.log(set);

new Set([]);    存储数组, 这种写法对

错误:

 let set = new Set({a:1,b:2});set.forEach((item) =>{console.log(item);})

new WeakSet({})    存储json,这种写法不靠谱

    WeakSet没有size,也没有clear()

    有, add(), has(), delete()

初始往里面添加东西,是不行的。最好用add添加

相关文章:

  • LLama-v2 权重下载
  • Webug4.0靶场通关笔记14- 第18关 文件上传之Nginx解析缺陷
  • Python-Django系列—视图
  • 【ArcGIS微课1000例】0145:如何按照自定义形状裁剪数据框?
  • Rust与C/C++互操作实战指南
  • 软考-软件设计师中级备考 10、文件管理、设备管理
  • 《MATLAB实战训练营:从入门到工业级应用》工程实用篇-自动驾驶初体验:车道线检测算法实战(MATLAB2016b版)
  • 【Linux】日志与策略模式、线程池
  • 基于k8s系统的API网关-kong网关
  • Kubernetes(k8s)学习笔记(六)--KubeSphere前置环境安装
  • PowerShell 备份 Windows10/11 还原计算机驱动程序SOP
  • 复杂网络系列:第 5 部分 — 社区检测和子图
  • USB布局布线
  • 【iOS】 方法交换
  • C++负载均衡远程调用学习之Agent代理模块基础构建
  • 修复笔记:SkyReels-V2 项目中的 torch.load 警告
  • 使用 IDEA + Maven 搭建传统 Spring MVC 项目的详细步骤(非Spring Boot)
  • Linux中的粘滞位和开发工具和文本编辑器vim
  • 神经网络发展的时间线——积跬步至千里
  • terraform resource创建了5台阿里云ecs,如要使用terraform删除其中一台主机,如何删除?
  • 贵州黔西游船倾覆事故70名落水人员在院救治,均为轻伤
  • 美权威人士批“特朗普对进口电影征关税”:将杀死美电影产业
  • 在海拔3980米驻守:“全国先进工作者”刘鹏与洛戈梁子警务站的9年
  • 2年就过气!ChatGPT催生的百万年薪岗位,大厂不愿意招了
  • 申活观察|人潮涌动成常态,豫园为何常来常新?
  • 五一假期前两日,多地党政主官暗访景点、商圈安全工作