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.mzph.cn/news/904179.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Cognito

首先Cognito没有提供登录至AWS控制台的功能,然而您可以通过Cognito Identity Pool获取到IAM role的credentials [1],再另外通过代码自行将IAM role credentials拼凑成AWS控制台登录的URL [2]。 最后,由于Cognito的使用除了User Pool以及Iden…

EfficientNet 改进:与Transformer结合的图像分类模型

1.介绍 在计算机视觉领域,EfficientNet因其高效的网络架构设计而广受欢迎。 本文将深入分析一个结合EfficientNet主干和Transformer分类头的创新模型实现。 模型概述 这个实现将EfficientNet的高效特征提取能力与Transformer的强大序列建模能力相结合,主要包含以下几个核心…

复杂网络系列:第 5 部分 — 社区检测和子图

关键词:Community Detection Algorithms 一、说明 在本教程中,我们将探讨网络分析的两个基本方面:社区检测和使用子图。了解这些概念将使您能够发现复杂网络中隐藏的结构和关系。 二、何为社区,何为社区检测? 2.1 …

【办公类-99-04】20250504闵豆统计表excle转PDF,合并PDF、添加中文字体页眉+边框下划线

需求说明 督导检查,各条线都要收集资料。 今天去加班,遇到家教主任,她让我用保教主任的彩色打印机打印这套活跃度表格。(2023学年上学期下学期-2024学年上学期,就是202309-202504) 每个excle都是内容在A4一…

升级 CUDA Toolkit 12.9 与 cuDNN 9.9.0 后验证指南:功能与虚拟环境检测

#工作记录 在 NVIDIA 发布 CUDA Toolkit 12.9 与 cuDNN 9.9.0 后,开发者纷纷选择升级以获取新特性和性能提升。 CUDA Toolkit 12.9 与 cuDNN 9.9.0 发布,带来全新特性与优化-CSDN博客 然而,升级完成并不意味着大功告成,确认升级后…

LLM论文笔记 28: Universal length generalization with Turing Programs

Arxiv日期:2024.10.4机构:Harvard University 关键词 图灵机 CoT 长度泛化 核心结论 Turing Programs 的提出 提出 Turing Programs,一种基于图灵机计算步骤的通用 CoT 策略。通过将算法任务分解为逐步的“磁带更新”(类似图灵…

【全队项目】智能学术海报生成系统PosterGenius--图片布局生成模型LayoutPrompt(1)

🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀大模型实战训练营_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 1. 前…

位图的实现和拓展

一:位图的介绍 ①:需要位图的场景 给40亿个不重复的无符号整数,没排过序。给一个无符号整数,如何快速判断一个数是否在这40亿个数中? 要判断一个数是否在某一堆数中,我们可能会想到如下方法: A…

排序功法入门指南【江湖算法笔记】

话说江湖风云变幻,各路英雄好汉行走江湖,总得有个名号排行。若问“东邪西毒南帝北丐”谁强谁弱,总得排个座次不是?这排序之道,恰似武功秘籍,练好了能号令群雄,练岔了怕是要被笑掉大牙&#xff0…

【中间件】brpc_基础_用户态线程中断

bthread之用户态线程中断 源码 1 简介 interrupt_pthread 核心功能是 通过信号机制中断阻塞的 pthread 线程,以实现线程的协作式中断。 2 核心功能与设计 2.1 信号选择与注册 信号选择:使用 SIGURG 作为中断信号。 原因:SIGURG 通常用于…

Linux 的网络卡

#本机操作系统CentOS 10 #核心版本 rootbogon:/etc# uname -r 6.12.0-65.el10.x86_64 网卡能不能被捉到可以使用【dmesg|grep xx】来判断,有没有驱动则可以使用lsmod看看模块有没有加载核心!最后,以ifconfig xxx测试看看 观察核心所捉到的网卡…

前端双工通信的几种方案详细描述

前端实现双工通信(全双工或半双工)的常见方案及详细实现如下: 一、WebSocket(全双工) 原理:基于 TCP 的持久化协议,客户端与服务端建立双向通信通道,支持实时双向数据传输。 // 客…

KUKA机器人快速启动设置

KUKA机器人在首次开机启动时,有时在示教器上需要进行投入运行等相关的设置。如以下相关的信息需要处理: 1、机器人系统开机后,选择T1运行模式;2、显示提示信息:“RDC 存储器和控制系统不一致什么被更换了”时&#xf…

游戏代码C

以下将结合不同编程语言的特点及游戏开发中的实际应用,展示多种语言的游戏代码示例(以简单游戏为例,展示代码结构和逻辑差异)。由于代码篇幅较长,我将分语言进行说明并引用相关来源: 1. C# Unity&#xff…

LangChain Agent核心解析:Zero-Shot-ReAct策略实现与实战指南

引言 在LangChain的Agent框架中,zero-shot-react-description 是一种预定义的Agent类型,它结合了Zero-Shot(零样本学习) 和 ReAct(推理行动) 策略,主要用于根据工具的描述动态选择和执行工具&a…

PyQt 或 PySide6 进行 GUI 开发文档与教程

一、官网文档 Qt 官方文档:Porting to Qt 6 | Qt 6.9Qt 维基:​​​​​​​Qt WikiQt for Python (PySide6) :​​​​​​​Qt for Python - Qt WikiPySide6 快速上手指南:​​​​​​​Getting Started - Qt for Python PyS…

2024年第十五届蓝桥杯省赛B组Python【 简洁易懂题解】

2024年第十五届蓝桥杯省赛B组Python题解 一、整体情况说明 2024年第十五届蓝桥杯省赛B组Python组考试共包含8道题目,分为结果填空题和程序设计题两类。 考试时间:4小时编程环境:Python 3.x,禁止使用第三方库,仅可使…

Go语言--语法基础4--基本数据类型--类型转换

Go 是一种强类型的语言,所以如果在赋值的时候两边类型不一致会报错。一个类型的值可以被转换成另一种类型的值。由于 Go 语言不存在隐式类型转换,因此所有的类型转换都必须显式的声明。 强制类型转换语法 使用 type (a) 这种形式来进行强制类型转换&am…

nginx 代理时怎么更改 Remote Address 请求头

今天工作中遇到用 localhost 访问网站能访问后台 api,但是用本机IP地址后就拒绝访问,我怀疑是后台获取 Remote Address 然后设置白名单了只能 localhost 访问。 想用 nginx 更改 Remote Address server {listen 8058;server_name localhost;loca…

LeetCode刷题链表

文章目录 链表总结 常用技巧两数相加题解代码 两两交换链表中的节点题解代码 重排链表题解代码 合并k个升序链表题解代码 K个一组翻转链表题解代码 链表总结 常用技巧 画图 直观 形象 便于理解引入虚拟头节点,便于处理边界情况,方便我们对链表进行…