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. 激活phpstorm10.0.1

    注册时选择“License server”输入“http://idea.lanyus.com/”点击“OK”快速激活JetBrains系列产品

  2. ios的自动转屏

    在IOS6以前,设置转屏需要用到方法 - (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)x 在6以后,取代它 ...

  3. jvm回收对象

    jvm在判断对象死亡之前需要判断对象是否可到达,方法有引用计数算法和可达性分析算法,jvm采用的是后者.首先来了解一下这两种算法. 引用计数算法: 算法定义 为每个对象增加一个字段记录被引用的次数,并 ...

  4. Java项目中打开本地文件的方法

    1:其中saveAddress 为已知本地文件全路径: Desktop.getDesktop().open(new File(saveAddress));

  5. [ios2]苹果iOS 5限制应用本地存储问题 【转】

    苹果 iOS 5 系统增加了一个新的机制——在设备容量空间不足的情况下自动清除高速缓存文件或临时目录的内容.这意味着,如果你设备的容量快到极限了,应用存储的很多离线内容,包括文章.杂志.图书.漫画以及 ...

  6. scrapy在ubuntu上安装总结

    此文档是本人学习时使用的,采用一个实例作为引导进行安装测试. 实例下载地址如下: https://github.com/sans-serif/scrapy-german-news#introducti ...

  7. C++ unordered_map 在key为string类型和char*类型时测试时间性能差异

    测试系统liunx centos6.5 代码如下 #include <string.h> #include <sstream> #include <list> #i ...

  8. windows下配置Java环境变量

    一.首先, JDK的安装路径,在这里我们选择默认安装在C:\Program Files\Java\jdk1.7.0_45\目录下. 二.下面, 设置环境变量: [1]“我的电脑”右键菜单---> ...

  9. 深入.NET平台和C#编程

    第一章  深入.NET框架 1.Microsoft.NET框架概述: 1).NET介绍 2)为什么需要.NET框架 通过如下两个问题说明为什么需要.NET框架 01,C#程序可以再不同平台(PDA,P ...

  10. Spring 注解式Aop 入门

    首先在spring配置文件中加上 xmlns:aop="http://www.springframework.org/schema/aop" http://www.springfr ...