1.Set和WeakSet

Set与数组相似,但是Set结构的成员必须是唯一的.

WeakSet与对象类型,但是WeakSet结构的成员只能是对象

Set结构的实例属性和方法

  属性:

    Set.prototype.constructor:构造函数

    Set.prototype.size:返回Set实例的成员总数

  方法:

    --add(value):添加值,返回Set结构本身

    --delete(value):删除某个值,返回一个布尔值

    --has(value):返回一个布尔值,判断该值是否为Set的成员

    --clear:清除所有成员,没有返回值

Set结构遍历方法:

  --keys:返回键对的遍历器

  --values:返回键值的遍历器

  --entries:返回键值对的遍历器

  --forEach:使用回调遍历每个成员

 //声明一个Set类型(一)
var set = new Set([1,2,3,4,2,8,4]);
//声明一个Set类型(二)
var set = new Set();
for(let i =0;i<5;i++){
set.add(i);
}
for(let elem of set){
console.log(elem); // 1,2,3,4,8
}

扩展运算符 (...),转成数组

var set = new Set();
[1,2,4,8,3,4].map(function(elem){
set.add(elem);
});
console.log("set = "+set); //set = [object Set]
//扩展运算,将setL类型变成数组类型
var arr = [...set];
console.log("arr = " +arr);//arr = 1,2,4,8,3

删除和清空

var set = new Set();
[1,2,4,8,3,4].map(function(elem){
set.add(elem);
});
console.log("set = "+set); //set = [object Set]
set.delete(2); //删除2 arr = 1,4,8,3
set.clear(); //清空 arr=
//扩展运算,将setL类型变成数组类型
var arr = [...set];
console.log("arr = " +arr);//arr = 1,2,4,8,3

遍历键值

var set = new Set();
[1,2,4,8,3,4].map(function(elem){
set.add(elem);
});
//键和值是相同的
set.forEach(function(value,key){
console.log(key + " = " + value);//1=1,2=2,3=3,4=4,8=8
});

WeakSet方法:

  --add(value):添加 一个成员

  --delete(value):清楚指定成员

  --has(value):返回一个boolean,判断某个值是否存在

WeakSet的对象都是弱应用,即垃圾回收机制不考虑WeakSet对该对象的引用,也就是说如果其他的对象都不再引用该对象,该对象就会被回收机制收回。因此,WeakSet是不可遍历的,因为成员很可能在遍历之后被回收了,消失了,成员就取不到了。

 

2.Map和WeakMap 

  

es6--(三)set和map数据结构的更多相关文章

  1. es6的Set和Map数据结构

    Set 和 Map 数据结构 Set WeakSet Map WeakMap Set § ⇧ 基本用法 ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set ...

  2. ES6系列_12之map数据结构

    1.map数据结构出现的原因? JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键.这给它的使用带来了很大的限制.为了能实现将对象作为键 ...

  3. ES6笔记03-Set和Map数据结构

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

  4. ES6 学习 -- Set和Map数据结构

    一.Set对象数据结构 1.Set数据结构类似数组,但是其每个成员都是唯一值,没有重复,且Set本身是一个构造函数,用来生成Set数据结构,用法如下: const setData = new Set( ...

  5. es6(三set和map数据结构)

    es6中提供了一个新的数据结构Set,他有点类似数组,但和数组不同的是,在里面你如果写入重复的值的话,他不会显示重复值. const s =new Set(); [2,3,4,5,6,6,6,7,8, ...

  6. 前端笔记之React(六)ES6的Set和Map&immutable和Ramda和lodash&redux-thunk

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

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

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

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

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

  9. js ES6 Set和Map数据结构详解

    这篇文章主要介绍了ES6学习笔记之Set和Map数据结构,结合实例形式详细分析了ECMAScript中基本数据结构Set和Map的常用属性与方法的功能.用法及相关注意事项,需要的朋友可以参考下   本 ...

  10. ES6的新特性(12)——Set 和 Map 数据结构

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

随机推荐

  1. POJ 3342 - Party at Hali-Bula 树型DP+最优解唯一性判断

    好久没写树型dp了...以前都是先找到叶子节点.用队列维护来做的...这次学着vector动态数组+DFS回朔的方法..感觉思路更加的清晰... 关于题目的第一问...能邀请到的最多人数..so ea ...

  2. 惊喜:opera换webkit内核后完美支持SDCH压缩协议

    csdn发邮件警告说再不发文章就取消我的专家头衔了.呵呵,其实我只是在csdn暴露了我的帐号密码以后不得已把csdn密码修改成一个我自己都记不住的货,所以很少上来了. 言归正传.我们从去年就在QQ空间 ...

  3. CF 327E(Axis Walking-状态压缩Dp-lowbit的使用)

    E. Axis Walking time limit per test 3 seconds memory limit per test 512 megabytes input standard inp ...

  4. ok6410 u-boot-2012.04.01移植二修改源码支持单板

    继ok6410 u-boot-2012.04.01移植一后修改代码,对ok6410单板初始化,主要包括时钟.串口.NAND.DDR等初始化.这些工作在以前的裸板程序都写了,直接拿来用.我觉得先写裸板程 ...

  5. 菜单工具栏wxPython菜单与工具栏基础示例

    这两天一直在学习菜单工具栏之类的问题,上午正好有机会和大家讨论一下. 1.基本的api介绍 Package wx :: Class Menu Type Menu Method Summary Menu ...

  6. 中文格式python 打印json格式的数据中文显示问题

    废话就不多说了,开始... 平日会有这么一个应用场景,会用python去处置json格式的web API,以“ip.taobao.com”的API为例,详情见http://ip.taobao.com/ ...

  7. Java的Exception和Error面试题10问10答

    在Java核心知识的面试中,你总能碰到关于 处理Exception和Error的面试题.Exception处理是Java应用开发中一个非常重要的方面,也是编写强健而稳定的Java程序的关键,这自然使它 ...

  8. 话说Angularjs的$resource模块

    上一篇中讲到使用$http同服务器进行通信,但是功能上比较简单,AngularJS还提供了另外一个可选的服务$resource,使用它可以非常方便的同支持restful的服务单进行数据交互. 安装 n ...

  9. php学习笔记——日期和时间

    一.time() 来取得服务器当前时间的时间戳 UNIX 时间戳(timestamp)是 PHP 中关于时间日期一个很重要的概念,它表示从 1970年1月1日 00:00:00 到当前时间的秒数之和. ...

  10. 使用FormData,进行Ajax请求并上传文件

    前段时间做了个手机端的图片上传,为了用户体验,用ajax交互,发现了FromData对象,这里有详细解释https://developer.mozilla.org/zh-CN/docs/Web/API ...