一、set数据结构 (使用  new来创建一个set集合   通过add方法添加元素   通过size来获取set集合的长度) 

{let list = new Set();list.add(5);list.add(7);console.log('size',list.size);
}

  还有另外一种初始化的方式(通过直接把数组传递进去)

{let arr = [1,2,3,4,5];let list = new Set(arr);console.log('size',list.size);
}

  set里面的元素不可以重复(可以通过set的这个特性进行数组去重,注意:转化过程中不会进行 数据类型转化)

{let list = new Set();list.add(1);list.add(2);list.add(1);//不会报错 只是不会生效console.log('list',list);let arr=[1,2,3,1,'2'];let list2=new Set(arr);console.log('unique',list2);
}

  set的一些方法(add ,delete,clear,has) 

{let arr=['add','delete','clear','has'];let list=new Set(arr);console.log('has',list.has('add'));//是否包含console.log('delete',list.delete('add'),list);//清空list.clear();console.log('list',list);
}

  set的遍历(keys和values返回的都是set里面的值)

{let arr=['add','delete','clear','has'];let list=new Set(arr);for(let key of list.keys()){console.log('keys',key);}for(let value of list.values()){console.log('value',value);}for(let [key,value] of list.entries()){console.log('entries',key,value);}list.forEach(function(item){console.log(item);})
}

  WeakSet(里面的元素只能是对象,并且不会检测所添加的对象是否在别处引用,没有size clear 不支持遍历)

{let weakList=new WeakSet();let arg={};weakList.add(arg);// weakList.add(2);
console.log('weakList',weakList);
}

二、Map数据结构(Map是通过key/value进行设置的,所以设置用set方法,获取使用get方法)  

{let map = new Map();let arr=['123'];map.set(arr,456);console.log('map',map,map.get(arr));
}

  Map的另外一种定义方式(同时size delete clear方法一样)

{let map = new Map([['a',123],['b',456]]);console.log('map args',map);console.log('size',map.size);console.log('delete',map.delete('a'),map);console.log('clear',map.clear(),map);
}

  weakMap数据结构(和setMap的特性一致)

{let weakmap=new WeakMap();let o={};weakmap.set(o,123);console.log(weakmap.get(o));
}

    

转载于:https://www.cnblogs.com/diasa-fly/p/7008583.html

ES6-----学习系列十(set-map数据结构)相关推荐

  1. WorldWind学习系列十五:如何切割影像和DEM数据及其在WW中的应用配置

    原文转自:http://www.cnblogs.com/wuhenke/archive/2010/01/03/1638499.html WorldWind学习系列十四中我从代码上分析如何加载DEM数据 ...

  2. ES6学习(十)—async 函数

    ES6学习(十)-async 函数 ES2017 标准引入了 async 函数,使得异步操作变得更加方便. 概念:真正意义上去解决异步回调的问题,同步流程表达异步操作 本质: Generator 函数 ...

  3. Java学习系列(十八)Java面向对象之基于UDP协议的网络通信

    UDP协议:无需建立虚拟链路,协议是不可靠的. A节点以DatagramSocket发送数据包,数据报携带数据,数据报上还有目的目地地址,大部分情况下,数据报可以抵达:但有些情况下,数据报可能会丢失 ...

  4. Java学习系列(十六)Java面向对象之基于TCP协议的网络通信

    TCP/IP的网络分层模型:应用层(HTTP/FTP/SMTP/POPS...),传输层(TCP协议),网络层(IP协议,负责为网络上节点分配唯一标识),物理层+数据链路层). IP地址用于标识网络中 ...

  5. Java学习系列(十)Java面向对象之I/O流(上)

    IO流 我们知道应用程序运行时数据是保存在内存中的,但由于内存中的数据不可持久保存(如断电或程序退出时数据会丢失),因此需要一种手段将数据写入硬盘或读入内存.面向IO流编程就是一种很好的选择.IO:I ...

  6. Android音视频学习系列(十) — 基于FFmpeg + OpenSL ES实现音频万能播放器

    系列文章 Android音视频学习系列(一) - JNI从入门到精通 Android音视频学习系列(二) - 交叉编译动态库.静态库的入门 Android音视频学习系列(三) - Shell脚本入门 ...

  7. 【ES6】阮一峰ES6学习(五)Set和Map联系及区别

    1. Set 集合 1. 基本用法 Set:Set对象允许你存储任何类型的值,无论是原始值或者是对象引用.类似于数组,但是成员的值都是唯一的,没有重复的值. Set本身是一个构造函数,用来生成 Set ...

  8. STL学习系列九:Map和multimap容器

    1.map/multimap的简介 map是标准的关联式容器,一个map是一个键值对序列,即(key,value)对.它提供基于key的快速检索能力. map中key值是唯一的.集合中的元素按一定的顺 ...

  9. linux can软件,Linux学习系列十:使用CAN

    1.引言 CAN总线由于其高可靠性,被广泛的应用在汽车电子及工业领域.生活中常见的一个使用CAN的地方是汽车OBD接口,它一般位于汽车方向盘的左下角,是一个16针的插座,其中里面就有一个CAN接口,可 ...

最新文章

  1. 基于matlab的硅晶体模型,基于Matlab的图像处理技术识别硅太阳电池的缺陷
  2. 如何优化cocos2d程序的内存使用和程序大小:第一部分
  3. 职中计算机应用教学方法,职中《计算机应用基础》教学心得体会
  4. [error] MFC错误不能将参数1从const char [3]转换为const wchar_t *
  5. 印度程序员为什么牛掰之ISAS.激发人的兴趣.探索精神.
  6. HEOI 2017 游记
  7. 上传到SAP云平台CloudFoundry上的nodejs应用存储的绝对路径
  8. python内置函数分类_Python 69个内置函数分类总结
  9. Ajax-基础篇(持续更新01)
  10. insert into 时间_值得花点时间背记的out of有关短语
  11. 华为matebook和linux版本区别,华为MateBook14Linux版本开箱评测 | 从来没有让我们失望!...
  12. 【Java学习笔记之三十一】详解Java8 lambda表达式
  13. JdbcTemplate简单介绍
  14. Basler千兆网相机使用相关设置
  15. 炫云渲染农场next客户端22546更新内容一览
  16. vue 高德api Map事件方法封装
  17. python方向是干什么的_为什么这么多人喜欢Python?Python的就业方向是什么?
  18. adb命令重置_ADB命令手册大全
  19. xlsx格式转csv
  20. MTK 6761平台 android O bootloader启动之 Pre-loader - Lk

热门文章

  1. react html编辑器,在线代码编辑器 Codemirror 的轻量级 React 组件
  2. redis mysql原理_Canal(redis与mysql数据一致性)
  3. linux新建两个工作组,linux添加工作组
  4. TCP/IP协议简介
  5. 2018-12-28
  6. GDAL的一个BUG
  7. ArcGIS+Sql Server发布要素服务
  8. 使用Nacos配置中心云端化本地application.properties
  9. git:Failed to connect to github.com port 443:.....
  10. c语言代码先来先服务算法_C语言十大经典排序算法(动态演示+代码,值得收藏)...