ES6 第十三节 Set和WeakSet数据结构

ES6 第十三节 Set和WeakSet数据结构


目录

  • ES6 第十三节 Set和WeakSet数据结构

    • 第十三节 Set和WeakSet数据结构

      • Set的声明
      • Set的增删改

第十三节 Set和WeakSet数据结构

Set数据结构(不是数据类型),是ES6中的新东西。它的数据结构是以数组的形式构建的。

Set的声明

let setArr = new ([‘da0sy‘,‘黛西‘,‘web‘,‘da0sy‘]);
console.log(setArr);

Set和Array 的区别是Set不允许内部有重复的值,如果有只显示一个,相当于去重。虽然Set很像数组,但是它不是数组。

Set的增删改

追加add:

在使用Array的时候,可以用push进行追加值,那Set稍有不同,它用更语义化的add进行追加。

let setArr = new Set([‘da0sy‘,‘黛西‘,‘web‘,‘da0sy‘]);
console.log(setArr);  

setArr.add(‘前端职场‘);
console.log(setArr);

删除delete:

let setArr = new Set([‘da0sy‘,‘黛西‘,‘web‘,‘da0sy‘]);
console.log(setArr);

setArr.add(‘前端职场‘);
console.log(setArr);

setArr.delete(‘前端职场‘);
console.log(setArr);

查找has:

用has进行值的查找,返回的是true或者false。

let setArr = new Set([‘da0sy‘,‘黛西‘,‘web‘,‘da0sy‘]);
console.log(setArr);

console.log(setArr.has(‘da0sy‘));  //true

删除clear:

let setArr = new Set([‘da0sy‘,‘黛西‘,‘web‘,‘da0sy‘]);
console.log(setArr);
setArr.clear();

console.log(setArr);  //0

set的循环 fior...of...循环:

let setArr = new Set([‘da0sy‘,‘黛西‘,‘web‘,‘da0sy‘]);
for(let item of setArr){
    console.log(item);
}   //会去重

size属性

size属性可以获得Set值的数量。

let setArr = new Set([‘da0sy‘,‘黛西‘,‘web‘,‘da0sy‘]);
for(let item of setArr){
    console.log(item);
}
console.log(setArr.size);  //3

forEach循环

let setArr = new Set([‘da0sy‘,‘黛西‘,‘web‘,‘da0sy‘]);
setArr.forEach((value)=>console.log(value));  //会去重

WeakSet的声明

let weakObj=new WeakSet();
let obj={a:‘da0sy‘,b:‘黛西‘};
weakObj.add(obj);

console.log(weakObj);

这里需要注意的是,如果你直接在new 的时候就放入值,将报错。

WeakSet里边的值也是不允许重复的,我们来测试一下。

let weakObj=new WeakSet();
let obj={a:‘da0sy‘,b:‘黛西‘};
let obj1=obj;

weakObj.add(obj);
weakObj.add(obj1);

console.log(weakObj);

总结:在实际开发中Set用的比较多,WeakSet用的并不多,但是他对传入值必须是对象作了很好的判断,我们灵活应用还是有一定的用处的。

原文地址:https://www.cnblogs.com/Elva3zora/p/12552954.html

时间: 2024-11-25 20:30:27

ES6 第十三节 Set和WeakSet数据结构的相关文章

ES6 第十四节 map数据结构

ES6 第十四节 map数据结构 目录 ES6 第十四节 map数据结构 第十四节 map数据结构 Json和map格式的对比 map的增删查 取值get 删除delete 删除delete的特定值: size属性 查找是否存在has 清除所有元素clear 第十四节 map数据结构 在一些构建工具中是非常喜欢使用map这种数据结构来进行配置的,因为map是一种灵活,简单的适合一对一查找的数据结构. Json和map格式的对比 map的效率和灵活性更好 先来写一个JSON,这里我们用对象进行模拟

Set 和 WeakSet 数据结构

Set 和 WeakSet 数据结构是ES6新增. 它与数组非常相似,但是Set数据结构的成员都是唯一的. 特别说明:Set 中只能添加一个NaN 一.Set 数据结构: var set = new Set([1,2,3,4,2,8,10])   // 两个2 for (var elem of set) { console.log(elem) }

第三百二十三节,web爬虫,scrapy模块以及相关依赖模块安装

第三百二十三节,web爬虫,scrapy模块以及相关依赖模块安装 当前环境python3.5 ,windows10系统 Linux系统安装 在线安装,会自动安装scrapy模块以及相关依赖模块 pip install Scrapy 手动源码安装,比较麻烦要自己手动安装scrapy模块以及依赖模块 安装以下模块 1.lxml-3.8.0.tar.gz (XML处理库) 2.Twisted-17.5.0.tar.bz2 (用Python编写的异步网络框架) 3.Scrapy-1.4.0.tar.gz

centos mysql 优化 第二十三节课

centos mysql  优化  第二十三节课 f

centos mysql 优化 第十三节课

centos mysql  优化  第十三节课 MySQL索引 主键值不能重复,也不能是NULLunique key + not null 业务主键用唯一索引代替 案例:某InnoDB表,没有自增列主键,使用一段时间后,产生碎片,重整表空间后,从13G变成了9G重整表空间的3种方法alter table xx engine=innodb;optimize table xx;create primary key on id 加主键聚集索引 mysql5.6之后依然无法online ddl做 加主键

centos LB负载均衡集群 第三十三节课

centos   LB负载均衡集群   第三十三节课 上半节课 下半节课 f

第三百五十三节,Python分布式爬虫打造搜索引擎Scrapy精讲—scrapy的暂停与重启

第三百五十三节,Python分布式爬虫打造搜索引擎Scrapy精讲-scrapy的暂停与重启 scrapy的每一个爬虫,暂停时可以记录暂停状态以及爬取了哪些url,重启时可以从暂停状态开始爬取过的URL不在爬取 实现暂停与重启记录状态 1.首先cd进入到scrapy项目里 2.在scrapy项目里创建保存记录信息的文件夹 3.执行命令: scrapy crawl 爬虫名称 -s JOBDIR=保存记录信息的路径 如:scrapy crawl cnblogs -s JOBDIR=zant/001

第三百三十三节,web爬虫讲解2—Scrapy框架爬虫—Scrapy模拟浏览器登录—获取Scrapy框架Cookies

第三百三十三节,web爬虫讲解2-Scrapy框架爬虫-Scrapy模拟浏览器登录 模拟浏览器登录 start_requests()方法,可以返回一个请求给爬虫的起始网站,这个返回的请求相当于start_urls,start_requests()返回的请求会替代start_urls里的请求 Request()get请求,可以设置,url.cookie.回调函数 FormRequest.from_response()表单post提交,第一个必须参数,上一次响应cookie的response对象,其

(转)第二十三节 inotify事件监控工具

第二十三节 inotify事件监控工具 标签(空格分隔): Linux实战教学笔记-陈思齐 原文:http://www.cnblogs.com/chensiqiqi/p/6542268.html 第1章,NFS存储服务器与backup备份服务器的搭建. 详细细节知识与搭建请关注: http://www.cnblogs.com/chensiqiqi/p/6514315.html Rsync数据同步工具 http://www.cnblogs.com/chensiqiqi/p/6530859.html