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 数据结构的更多相关文章

  1. 11 Set和Map数据结构

    Set和Map数据结构 Set WeakSet Map WeakMap 首先 这四个对象都是 数据结构. 用于存放数据 Set 类似数组. 但是不能重复. 如果你有重复数据,会自动忽略 属性 size ...

  2. ES6 之 Set数据结构和Map数据结构 Iterator和for...of循环

    ECMAScript 6 入门 Set数据结构 基本用法 ES6提供了新的数据结构Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set本身是一个构造函数,用来生成Set数据结构. va ...

  3. ES6中的Set、Map数据结构

    Map.Set都是ES6新的数据结构,他们都是新的内置构造函数.也就是说typeof的结果,多了两个. 他们是什么:  Set是不能重复的数组.    Map是可以任何东西当做键的对象: ES6 提供 ...

  4. ECMAScript 6之Set和Map数据结构

    Set 基本用法 ES6提供了新的数据结构Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set本身是一个构造函数,用来生成Set数据结构. var s = new Set(); [2, ...

  5. es6学习笔记-set和map数据结构

    ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. const s = new Set(); [2, 3 ...

  6. js-ES6学习笔记-Set和Map数据结构

    1.ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. 2.Set 函数可以接受一个数组(或类似数组的对 ...

  7. JavaScript(ES6)学习笔记-Set和Map数据结构(一)

    一.Set 1.ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. , , , , ']); s; // ...

  8. Map 数据结构

    JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键.这给它的使用带来了很大的限制. 为了解决这个问题,ES6 提供了 Map 数据结构. ...

  9. go map数据结构

    map数据结构 key-value的数据结构,又叫字典或关联数组 声明: var map1 map[keytype]valuetype var a map[string]string var a ma ...

随机推荐

  1. 关于NB-IoT的十大问题和答案【转】

    转自:https://blog.csdn.net/u011943791/article/details/80287053 今天大白来给各位解答一下关于NB-IoT的十大问题. 问1:NB-IoT模块还 ...

  2. django2.0无法加载外部css和js的问题

    解决问题的思路来源于https://www.v2ex.com/t/430192 先是创建static目录,该目录与manage.py同级 然后在项目settings.py文件里添加 STATICFIL ...

  3. .Net IOC框架入门之三 Autofac

    一.简介   Autofac是.NET领域最为流行的IOC框架之一,传说是速度最快的一个 目的 1.依赖注入的目的是为了解耦. 2.不依赖于具体类,而依赖抽象类或者接口,这叫依赖倒置. 3.控制反转即 ...

  4. AC的故事大结局山寨版(下)

    AC的故事大结局山寨版(下) TimeLimit:2000MS  MemoryLimit:128MB 64-bit integer IO format:%lld   Problem Descripti ...

  5. 使用Jmeter监测服务器性能指标

    jmeter监控服务器CPU.内存等性能参数,需要安装一些插件 插件名:JMeterPlugins-Extras,JMeterPlugins-Standard 以及ServerAgent. 下载地址: ...

  6. Windows Internals 笔记——作业

    1.Windows提供了一个作业内核对象,它允许我们将进程组合在一起并创建一个“沙箱”来限制进程能够做什么.创建只包含一个进程的作业同样非常有用,因为这样可以对进程施加平时不能施加的限制. 2.如果进 ...

  7. elasticsearch-5.2.1在windows下的安装方法

    elasticsearch-5.2.1安装方法 1. 安装java 下载安装java jdk 1.8 以上 配置java环境变量 右击[我的电脑]---[属性]-----[高级系统设置]---[环境变 ...

  8. Code First

    Add-Migration ****** Update-Database –Verbose

  9. python 代理

    1.参考 http://docs.python-requests.org/en/master/user/advanced/ Using Python’s urllib2 or Requests wit ...

  10. 解除vnc viewer键盘快捷键的禁用

    解除VNC的键盘禁用: vnc viewer 局域网中用来听课用,alt+tab用不了不能切换其他窗口,很不方便.具体步骤: F8(或者窗口上边缘的设置按钮)——>options——>ad ...