ECMAScript 6中的Set和Map数据结构
一.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数据结构的更多相关文章
- ES6中的Set与Map数据结构
本文实例讲述了ES6学习笔记之Set和Map数据结构.分享给大家供大家参考,具体如下: 一.Set ES6提供了新的数据结构Set.类似于数组,只不过其成员值都是唯一的,没有重复的值. Set本身是一 ...
- ES6中的Set、Map数据结构
Map.Set都是ES6新的数据结构,他们都是新的内置构造函数.也就是说typeof的结果,多了两个. 他们是什么: Set是不能重复的数组. Map是可以任何东西当做键的对象: ES6 提供 ...
- javascript中的Set和Map数据结构
Set数据结构 类似数组,所有的数据都是唯一的,没有重复值,它本身是一个构造函数 size 数据长度 add() 添加一个数据 delete() 删除一个数据 has() 查找一个数据 clear() ...
- C#中使用Dictionary实现Map数据结构——VC编程网
转载自: http://blog.51cto.com/psnx168 在VC中使用过CMap以及在Java中使用过Map的朋友应该很熟悉,使用Map可以方便实现基于键值对数据的处理,在C#中,你就需要 ...
- es6入门7--Set Map数据结构
本文作为ES6入门第十三章的学习整理笔记,可能会包含少部分个人的理解推测,若想阅读更详细的介绍,还请阅读原文ES6入门 一.set数据结构 1.set不接受重复值 ES6新增了Set构造函数用于创建s ...
- JavaScript数据结构与算法(八) 集合(ECMAScript 6中定义的类似的Set类)
TypeScript方式实现源码 // 特性: // 1. 集合是由一组无序且唯一(即不能重复)的项组成的.这个数据结构使用了与有限集合相同的数学概念,但应用在计算机科学的数据结构中. // 2. 也 ...
- ECMAScript 6之Set和Map数据结构
Set 基本用法 ES6提供了新的数据结构Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set本身是一个构造函数,用来生成Set数据结构. var s = new Set(); [2, ...
- ES6中Map数据结构学习笔记
很多东西就是要细细的品读然后做点读书笔记,心理才会踏实- Javascript对象本质上就是键值对的集合(Hash结构),但是键只能是字符串,这有一定的限制. 1234 var d = {}var e ...
- ES6 之 Set数据结构和Map数据结构 Iterator和for...of循环
ECMAScript 6 入门 Set数据结构 基本用法 ES6提供了新的数据结构Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set本身是一个构造函数,用来生成Set数据结构. va ...
随机推荐
- 关于apache 重定向设定
本人在研究关于apache重定向的资料,在网上找了很多,但是就本人来说,方便理解的,找到了这么一个,记录了下来,原帖地址:http://www.exehack.net/8.html 关于apache配 ...
- 爬虫那些事儿--Http返回码
由于爬虫的抓取也是使用http协议交互.因此需要了解Http的各种返回码所代表的意义,才能判断爬虫的执行结果. 返回码如下: 100 Continue 初始的请求已经接受,客户应当继续发送请求的其余部 ...
- zabbix active模式以及自定义key not Supported的解决
zabbix active模式 active模式适用场景 zabbix server端无法直连agent端,比如agent为内网机器,仅有内网ip,没有公网ip,但是内网机器能够访问server端 a ...
- Linux统计根分区使用率
#!/bin/bash # 统计根分区使用率 # 作者: shaohsiung # 时间: // rate=$(df -h | grep "dev/sda3" | awk '{pr ...
- C++ 短信验证码/通知 - 代码示例
//接口类型:互亿无线触发短信接口,支持发送验证码短信.订单通知短信等. // ///////////////////账户注册:请通过该地址开通账户http://user.ihuyi.com/regi ...
- TStringGrid 实现下拉框
TStringGrid 实现下拉框比较常见的思路是在TSringGrid中嵌入一个TComboBox ,思路虽然简单,但开发起来却很麻烦,而且有时会出现不愿看到的效果.还有一种更巧的方法,是Delph ...
- 线性基算贡献——19牛客多校第一场H
/* 给定数组a[],求有多少集合的异或值为0,将这些集合的大小之和求出来 对于每个数来说,如果除去这个数后数组里做出的线性基和这个数线性相关,那么这个数贡献就是2^(n-1-线性基的大小) 反之这个 ...
- Prometheus监控node-exporter常用指标含义
一.说明 最近使用Prometheus新搭建监控系统时候发现内存采集时centos6和centos7下内存监控指标采集计算公式不相同,最后采用统一计算方法并整理计算公式如下: 1 100-(node_ ...
- HMaster高可用
1.确保HBase集群已正常停止 $ bin/stop-hbase.sh 2.在conf目录下创建backup-masters文件 $ touch conf/backup-masters 3.在bac ...
- KdPrint/DbgPrint and UNICODE_STRING/ANSI_STRING
typedef struct _UNICODE_STRING { USHORT Length; USHORT MaximumLength; PWSTR Buffer; } UNICODE_STRING ...