set和 map 数据结构
set/map数据结构
创建:
var s=new Set();
添加成员
s.add(1)
遍历
for of
s.froEach
删除
s.delete()
判断存在
s.has()
清除
s.clear()
转为数组
array.from(set)
支持 keys. values. entries
s.keys, 注意和 Object.的区别, set不支持 Object.keys
特性
不接受添加重复的值, 所以 set 里面的值都是唯一的
判断两个值是否相等使用的是类似 ===
初始化set的时候可以接受一个数组或者一个字符串, 如果接受的是字符串那么会把字符串分解为一个数组, 不接受对象及其他基本类型, (因为都是不可迭代的??)
set 接受 ... 的方式做扩展
因为两个对象总是不相等的, 所以 set 会接受两个空对象
set 的成员可以是任何的数据类型
set 成员添加的顺序就是遍历出的顺序, 所以 set 是有序的
用法;
数组去重
真心感觉这个数据结构的没啥用啊, 主要是成员有序加不重复这个特性
WeakSet
特性
成员只能是对象
对象的引用不计入垃圾回收机制
不可遍历, 因为其成员的数是不固定的, 垃圾回收机制随时可能清空其中的一个成员, 所以不可遍历
其余相同
初始化
可以接受一个数组, 但是数组成员必须是对象
方法
delete
add
has
这个东西有啥子用吗, 闷逼脸, 都不可以遍历, 真不知道什么情况下使用. 这个东西是用来监听对象的引用的吗
Map 数据结构
特性
map就是 Object 的一种改进
map 的键和值可以使任何类型, 但是 Object不行
map 判断相等也是使用的 === 的加强版本
map 的元素是有序的
map的底层实现可能就是数组, 因为从使用来看, 确实在和数组之间转换比较容易
初始化
可以接受一个二维的数组, 其中数组元素必须有两个元素
可以接受 set 做初始化数据
方法
set, 多次的相同的键会覆盖
get
has
delete
clear
遍历
keys
values
entries
for of, 可以直接拿到 value, 但是 for of 不能遍历 Object的, 为此 es6 新增了 Object.values
接受 ...
可以使用 forEach
转为数组
使用 ... 直接转换
weakMap
weakMap 和 weakSet 的形式差不多, 也是只接受对象, 并且是弱引用, 但是只是键名是弱的, 值还是强的
特性
没有遍历方法
方法
get
set
delete
has
用处
在一个对象上设置依赖其的变量, 一旦变量不被引用, 那么其所依赖的变量都消失
set和 map 数据结构的更多相关文章
- 11 Set和Map数据结构
Set和Map数据结构 Set WeakSet Map WeakMap 首先 这四个对象都是 数据结构. 用于存放数据 Set 类似数组. 但是不能重复. 如果你有重复数据,会自动忽略 属性 size ...
- ES6 之 Set数据结构和Map数据结构 Iterator和for...of循环
ECMAScript 6 入门 Set数据结构 基本用法 ES6提供了新的数据结构Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set本身是一个构造函数,用来生成Set数据结构. va ...
- ES6中的Set、Map数据结构
Map.Set都是ES6新的数据结构,他们都是新的内置构造函数.也就是说typeof的结果,多了两个. 他们是什么: Set是不能重复的数组. Map是可以任何东西当做键的对象: ES6 提供 ...
- 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 ...
- js-ES6学习笔记-Set和Map数据结构
1.ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. 2.Set 函数可以接受一个数组(或类似数组的对 ...
- JavaScript(ES6)学习笔记-Set和Map数据结构(一)
一.Set 1.ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. , , , , ']); s; // ...
- Map 数据结构
JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键.这给它的使用带来了很大的限制. 为了解决这个问题,ES6 提供了 Map 数据结构. ...
- go map数据结构
map数据结构 key-value的数据结构,又叫字典或关联数组 声明: var map1 map[keytype]valuetype var a map[string]string var a ma ...
随机推荐
- 关于NB-IoT的十大问题和答案【转】
转自:https://blog.csdn.net/u011943791/article/details/80287053 今天大白来给各位解答一下关于NB-IoT的十大问题. 问1:NB-IoT模块还 ...
- django2.0无法加载外部css和js的问题
解决问题的思路来源于https://www.v2ex.com/t/430192 先是创建static目录,该目录与manage.py同级 然后在项目settings.py文件里添加 STATICFIL ...
- .Net IOC框架入门之三 Autofac
一.简介 Autofac是.NET领域最为流行的IOC框架之一,传说是速度最快的一个 目的 1.依赖注入的目的是为了解耦. 2.不依赖于具体类,而依赖抽象类或者接口,这叫依赖倒置. 3.控制反转即 ...
- AC的故事大结局山寨版(下)
AC的故事大结局山寨版(下) TimeLimit:2000MS MemoryLimit:128MB 64-bit integer IO format:%lld Problem Descripti ...
- 使用Jmeter监测服务器性能指标
jmeter监控服务器CPU.内存等性能参数,需要安装一些插件 插件名:JMeterPlugins-Extras,JMeterPlugins-Standard 以及ServerAgent. 下载地址: ...
- Windows Internals 笔记——作业
1.Windows提供了一个作业内核对象,它允许我们将进程组合在一起并创建一个“沙箱”来限制进程能够做什么.创建只包含一个进程的作业同样非常有用,因为这样可以对进程施加平时不能施加的限制. 2.如果进 ...
- elasticsearch-5.2.1在windows下的安装方法
elasticsearch-5.2.1安装方法 1. 安装java 下载安装java jdk 1.8 以上 配置java环境变量 右击[我的电脑]---[属性]-----[高级系统设置]---[环境变 ...
- Code First
Add-Migration ****** Update-Database –Verbose
- python 代理
1.参考 http://docs.python-requests.org/en/master/user/advanced/ Using Python’s urllib2 or Requests wit ...
- 解除vnc viewer键盘快捷键的禁用
解除VNC的键盘禁用: vnc viewer 局域网中用来听课用,alt+tab用不了不能切换其他窗口,很不方便.具体步骤: F8(或者窗口上边缘的设置按钮)——>options——>ad ...