一.Set

  基本用法:

    Set本身是一个构造函数,用来生成Set数据结构。Set函数可以接受一个数组作为参数用来初始化。 

const arr = new Set([2,2,3,3,4,4,5,8]);
console.log(arr);

  set的属性和方法

  属性:

   Set.prototype.constructor:构造函数,默认就是Set函数。

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

let set  = new Set([1,1,2,2,3,4])
set.size //4

 方法:

  1.add(value):添加某个值,返回 Set 结构本身。 

let set = new Set();
set.add(1); //Set(1){1}

  2.delete:删除某个值,返回一个布尔值,表示删除是否成功。

let set  = new Set();
set.add(1).add(2); //Set(2){1,2}
set.delete(2); // true
console.log(set); //Set(1){1}

  3.has(value):返回一个布尔值,表示该值是否为Set的成员。

let set  = new Set();
set.add(1).add(2); //Set(2){1,2}
set.has(2); // false

  4.clear():清除所有成员,没有返回值。

let set  = new Set();
set.add(1).add(2); //Set(2){1,2}
set.clear();
console.log(set); //Set(0){}  

可以通过Array.from方法将Set结构转为数组

let set = new Set();
set.add(1).add(2);
let setArray = Array.from(set);
console.log(setArray ); //[1,2]

  然而,我们可以通过Set()和Array.from对数组进行去重 

function deleUp(arr){
return Array.from(new Set(arr))
}
let set = [1,1,2,2,3,3];
deleUp(set); //[1,2,3]

二.Map

   基本用法:Map类似对象,也是键值对的集合。Map 结构提供了“值—值”的对应,是一种更完善的 Hash 结构实现。和Set()一样,Map也可以接受一个数组作为参数进行初始化。

  实例的属性和方法

  size:返回Map结构的成员总数。

const map = new Map();
map.set('a',true);
map.set('b',false);
map.size;

  set(key,value):key可以是字符串、数组、undefined

const map = new Map();
map.set('name','zhangsan').set(1,'a'); //Map(2) {"name" => "zhangsan", 1 => "a"}

  get(key):返回key的值,如果没有相应的key,则返回undefined

const map = new Map();
map.set('name','zhangsan').set(1,'a'); //Map(2) {"name" => "zhangsan", 1 => "a"}
map.get('name'); //zhangsan

  has(key)、delete(key)、clear()方法和Set实例中相关方法一样。

三、其它

  关于Set和Map这里只做简单介绍,详细内容请查阅《ECMAScript 6》中的Set和Map数据结构。

 

 

ECMAScript 6中的Set和Map数据结构的更多相关文章

  1. ES6中的Set与Map数据结构

    本文实例讲述了ES6学习笔记之Set和Map数据结构.分享给大家供大家参考,具体如下: 一.Set ES6提供了新的数据结构Set.类似于数组,只不过其成员值都是唯一的,没有重复的值. Set本身是一 ...

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

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

  3. javascript中的Set和Map数据结构

    Set数据结构 类似数组,所有的数据都是唯一的,没有重复值,它本身是一个构造函数 size 数据长度 add() 添加一个数据 delete() 删除一个数据 has() 查找一个数据 clear() ...

  4. C#中使用Dictionary实现Map数据结构——VC编程网

    转载自: http://blog.51cto.com/psnx168 在VC中使用过CMap以及在Java中使用过Map的朋友应该很熟悉,使用Map可以方便实现基于键值对数据的处理,在C#中,你就需要 ...

  5. es6入门7--Set Map数据结构

    本文作为ES6入门第十三章的学习整理笔记,可能会包含少部分个人的理解推测,若想阅读更详细的介绍,还请阅读原文ES6入门 一.set数据结构 1.set不接受重复值 ES6新增了Set构造函数用于创建s ...

  6. JavaScript数据结构与算法(八) 集合(ECMAScript 6中定义的类似的Set类)

    TypeScript方式实现源码 // 特性: // 1. 集合是由一组无序且唯一(即不能重复)的项组成的.这个数据结构使用了与有限集合相同的数学概念,但应用在计算机科学的数据结构中. // 2. 也 ...

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

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

  8. ES6中Map数据结构学习笔记

    很多东西就是要细细的品读然后做点读书笔记,心理才会踏实- Javascript对象本质上就是键值对的集合(Hash结构),但是键只能是字符串,这有一定的限制. 1234 var d = {}var e ...

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

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

随机推荐

  1. 辞职信也要玩出高big

    辞职信尊敬的各位公司领导:值此用人之际,不期请辞,实属不敬.历经四季,余以凡才,承蒙殊待,幸受公司各位领导知遇之恩,得以与诸位贤达公事.时光荏苒,吾经竭力而为,以图报效,虽幸遇领导执手相教,然资质愚钝 ...

  2. vue实现京东动态楼层效果

    页面效果如下 <template> <div> <h1>首页</h1> <section class="floor-nav" ...

  3. 请问在一个固定div大小里面,图片右移动,超出div容器的图片给隐藏,怎么设定?

    如图,让图片移动,溢出的图片被隐藏,怎么设置? overflow: hidden;

  4. CDH 下线节点

    rm -rf /var/web/com/public  杜绝这种删除方式 停止集群下线的节点 步骤: 1 停止主机上的角色 2 解除授权 3 从集群中删除 4 为了避免数据丢失,必须一台一台的进行,如 ...

  5. 线段树区间离散化维护按秩合并并查集(可撤销)——牛客多校第八场E

    模板题..去网上学了可撤销的并查集.. /* 给定一个无向图,边的属性为(u,v,l,r),表示<u,v>可以通过的size为[l,r] 求出有多少不同的size可以从1->n 把每 ...

  6. NX二次开发-UFUN单选菜单对话框uc1603

    NX11+VS2013 #include <uf.h> #include <uf_ui.h> UF_initialize(); //单选菜单对话框 char sPromptSt ...

  7. HDU6395-Sequence 矩阵快速幂+除法分块 矩阵快速幂模板

    目录 Catalog Solution: (有任何问题欢迎留言或私聊 && 欢迎交流讨论哦 Catalog Problem:Portal传送门  原题目描述在最下面. Solution ...

  8. Java-Class-@I:org.springframework.beans.factory.annotation.Autowired

    ylbtech-Java-Class-@I:org.springframework.beans.factory.annotation.Autowired 1.返回顶部   2.返回顶部 1. pack ...

  9. 修改linux默认语言

    linux修改默认语言   编辑/etc/sysconfig/i18n这个文件(不存在就新建一个),原内容如下: LANG="en_US.UTF-8" SYSFONT=" ...

  10. CometOJ Contest #3 C

    题目链接:https://cometoj.com/contest/38/problem/C?problem_id=1542&myself=0&result=0&page=1&a ...