Set和WeakSet数据结构
学习Set数据结构,注意这里不是数据类型,而是数据结构。它是ES6中新的东西,并且很有用处。Set的数据结构是以数组的形式构建的。
Set的声明
let setArr = new Set(['js','技术','web','js']);
console.log(setArr);//Set {"js", "技术", "web"}
Set和Array 的区别是Set不允许内部有重复的值,如果有只显示一个,相当于去重。虽然Set很像数组,但是他不是数组。
Set值的增删查
追加add:
在使用Array的时候,可以用push进行追加值,那Set稍有不同,它用更语义化的add进行追加。
let setArr = new Set(['js','技术','web','js']);
console.log(setArr);//Set {"js", "技术", "web"}
setArr.add('前端职场');
console.log(setArr)
删除delete:
let setArr = new Set(['js','技术','web','js']);
console.log(setArr);//Set {"js", "技术", "web"}
setArr.add('前端职场');
console.log(setArr); //Set {"js", "技术", "web", "前端职场"}
setArr.delete('前端职场');
console.log(setArr); //Set {"js", "技术", "web"}
查找has:
用has进行值的查找,返回的是true或者false。
let setArr = new Set(['js','技术','web','js']);
console.log(setArr);//Set {"js", "技术", "web"}
console.log(setArr.has('js'));//true
清空clear:
let setArr = new Set(['jspang','技术胖','web','jspang']);
console.log(setArr);//Set {"jspang", "技术胖", "web"}
setArr.clear();
console.log(setArr);//元素被清空
set的循环
for…of…循环:
let setArr = new Set(['js','技术','web','js']);
for (let item of setArr){
console.log(item);
}
size属性
size属性可以获得Set值的数量。
let setArr = new Set(['jspang','技术胖','web','jspang']);
for (let item of setArr){
console.log(item);
}
console.log(setArr.size);
forEach循环
let setArr = new Set(['jspang','技术胖','web','jspang']);
setArr.forEach((value)=>console.log(value));
WeakSet的声明
let weakObj=new WeakSet();
let obj={a:'js',b:'技术'}
weakObj.add(obj);
console.log(weakObj);
这里需要注意的是,如果你直接在new 的时候就放入值,将报错。
WeakSet里边的值也是不允许重复的,我们来测试一下。
let weakObj=new WeakSet();
let obj={a:'js',b:'技术'}
let obj1=obj;
weakObj.add(obj);
weakObj.add(obj1);
console.log(weakObj);
总结:在实际开发中Set用的比较多,WeakSet用的并不多,但是他对传入值必须是对象作了很好的判断,我们灵活应用还是有一定的用处的。
Set和WeakSet数据结构的更多相关文章
- Set 和 WeakSet 数据结构
Set 和 WeakSet 数据结构是ES6新增. 它与数组非常相似,但是Set数据结构的成员都是唯一的. 特别说明:Set 中只能添加一个NaN 一.Set 数据结构: var set = new ...
- ES6系列_11之Set和WeakSet数据结构
一.Set 1.Set是什么? Set是ES6 提供的一种新的数据结构.类似于数组. 2.Set能解决什么问题 Set和Array 的区别是Set不允许内部有重复的值,如果有只显示一个,相当于去重. ...
- ES6 WeakSet数据结构 与Set十分相似
它与Set十分相似,对象的值也不能是重复的,与Set不同点: .WeakSet成员只能够是对象. .作为WeakSet成员的对象都是弱引用,即垃圾回收机制不考虑WeakSet对该对象的引用,也就是说, ...
- ES6 之 Set数据结构和Map数据结构 Iterator和for...of循环
ECMAScript 6 入门 Set数据结构 基本用法 ES6提供了新的数据结构Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set本身是一个构造函数,用来生成Set数据结构. va ...
- ECMAScript 6之Set和Map数据结构
Set 基本用法 ES6提供了新的数据结构Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set本身是一个构造函数,用来生成Set数据结构. var s = new Set(); [2, ...
- es6学习笔记-set和map数据结构
ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. const s = new Set(); [2, 3 ...
- 10.Set 和 Map 数据结构
Set 和 Map 数据结构 Set 和 Map 数据结构 Set 基本用法 ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来 ...
- ES6的新特性(12)——Set 和 Map 数据结构
Set 和 Map 数据结构 Set 基本用法 ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. co ...
- es6的Set和Map数据结构
Set 和 Map 数据结构 Set WeakSet Map WeakMap Set § ⇧ 基本用法 ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set ...
随机推荐
- Maven的配置指南
Maven的配置指南 配置Maven Maven配置发生在3个级别: 项目 - 大多数静态配置发生在pom.xml中 安装 - 这是Maven安装时发生的一次性的配置过程 用户 - 这是Maven提 ...
- windows10 安装 mysql8.0.12 详解
[1]下载安装包 官网下载地址:https://downloads.mysql.com/archives/community/ 如下图所示: 下载完成,安装包为mysql-8.0.12-winx64. ...
- Nexus3.x.x上传第三方jar
exus3.x.x上传第三方jar: 1. create repository 选择maven2(hosted),说明: proxy:即你可以设置代理,设置了代理之后,在你的nexus中找不到的依赖就 ...
- MCMC算法深入理解
MCMC(Markov Chain Monte Carlo),即马尔科夫链蒙特卡洛方法,是以马尔科夫平稳状态作为理论基础,蒙特卡洛方法作为手段的概率序列生成技术. MCMC理论基础 如果转移矩阵为P的 ...
- nodejs之pm2自动重启服务
pm2 start xxx #启动服务器 pm2 list #查看运行状态 pm2 logs #查看日志 pm2 restart xxx #重启应用 pm2 stop xxx #停止应用 监听修改,并 ...
- js中利用cookie实现记住密码功能
在登录界面添加记住密码功能,代码如下: //设置cookie var passKey = '4c05c54d952b11e691d76c0b843ea7f9'; function setCookie( ...
- Ajax 知识
Ajax 为什么要有ajax技术? 传统的web应用,一个简单的操作就要加载整个页面.浪费资源. Ajax 即“Asynchronous Javascript And XML”(异步JavaS ...
- Django后端项目----restful framework 认证源码流程
一.请求到来之后,都要先执行dispatch方法,dispatch方法方法根据请求方式的不同触发get/post/put/delete等方法 注意,APIView中的dispatch方法有很多的功能 ...
- Django项目----快速实现增删改查组件(起步阶段!!!)
一.相关知识点回顾 1.什么是反射? 可以用字符串的方式去访问对象的属性 2.反射有四种方法? hasattr(object,name):判断一个对象是不是有name属性或者方法 getattr: ...
- 爬虫学习06用selenium爬取空间
用selenium爬取空间 from selenium import webdriver from lxml import etree import time pro = webdriver.Chro ...