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

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添加

http://www.xdnf.cn/news/4023.html

相关文章:

  • SQL手工注入(DVWA)
  • 「Mac畅玩AIGC与多模态17」开发篇13 - 条件判断与分支跳转工作流示例
  • 交互式智能体面临长周期决策和随机环境反馈交互等挑战 以及解决办法
  • 记录一次手动更新英特尔Management Engine固件的经历
  • Python绘制误差棒:深入解析数据的不确定性
  • 文章记单词 | 第62篇(六级)
  • W-TinyLFU缓存驱逐算法解析
  • Maven框架详解:构建与依赖管理的利器
  • 《奇迹世界起源》:宝箱工坊介绍!
  • MyBatis 核心类详解与架构解析:从入门到源码级理解
  • 《前端秘籍:SCSS阴影效果全兼容指南》
  • Linux的系统周期化任务
  • ES类的索引轮换
  • JVM——JVM是怎么实现invokedynamic的?
  • HttpPrinter 是一款功能强大的跨平台 Web 打印解决方案
  • C与指针——结构与联合
  • Feign的原理
  • cesium基础设置
  • xx外卖知识补充
  • 日语学习-日语知识点小记-进阶-JLPT-N1阶段(1):语法单词
  • Jetpack Compose 边距终极指南:Margin 和 Padding 的正确处理方式
  • 详细案例,集成算法
  • 高等数学第三章---微分中值定理与导数的应用(3.3泰勒(Taylor)公式)
  • JAVA组织/岗位拉取多段时间属性到一张表上时,时间段分隔问题
  • 解释一下NGINX的反向代理和正向代理的区别?
  • 【C++重载操作符与转换】下标操作符
  • Android学习总结之事件分发机制篇
  • Java大厂面试:Java技术栈中的核心知识点
  • 25.5.4数据结构|哈夫曼树 学习笔记
  • 深度学习在自动驾驶车辆车道检测中的应用