文档章节

ES6--Set()和Map()

o
 osc_ogi0qclx
发布于 2019/08/22 16:18
字数 478
阅读 12
收藏 0

精选30+云产品,助力企业轻松上云!>>>

Set()

const set = new Set([1, 2, 3, 4, 4]);
[...set]
// [1, 2, 3, 4]
使用Set去重
// 去除数组的重复成员
[new Set(array)]
//去除字符串中的重复字符
[new Set('ababbc')].join('')
// "abc"
set实例的属性和方法
属性
constructor
size

方法

add(value)
delete(value)
has(value)
clear()

遍历

keys()
values()
entries()
forEach()
...(扩展运算符)
map()(先把set使用...转化成Array)
filter()(先把set使用...转化成Array)
set数据转换
// set转数组
Array.from(set);
[...set];

// 数组转set
new Set(array)
应用:使用set实现并集、交集、差集
let a = new Set([1, 2, 3]);
let b = new Set([4, 3, 2]);
// 并集
let union = new Set([...a, ...b]);
// Set {1, 2, 3, 4}
// 交集
let intersect = new Set([...a].filter(x => b.has(x)));
// set {2, 3}
// 差集
let difference = new Set([...a].filter(x => !b.has(x)));
// Set {1}

 

WeakSet()

const a = [[1, 2], [3, 4]];
const ws = new WeakSet(a);
// WeakSet {[1, 2], [3, 4]}
属性:没有size属性
遍历:不能遍历,因为成员是弱引用,随时可能会消失
方法
add(values)
delete(value)
has(value)

 

Map()

Object 结构提供了“字符串—值”的对应
Map 结构提供了“值—值”的对应
const o = {p: 'Hello World'};
const m = new Map(o);
m.set(o, 'content')

 属性

size
constructor

方法

set(key, value)
get(key)
has(key)
delete(key)
clear()

遍历(Map 的遍历顺序是插入顺序)

keys()
values()
entries()
forEach()
...(转化成数组结构)
map()(先把map使用...转化成Array)
filter()(先把map使用...转化成Array)

map数据转换

// map转数组
[...map]

// 数组转Map
new Map(array)

// map转对象
let obj = Object.create(null);
for (let [k,v] of strMap) {
    obj[k] = v;
}

// 对象转map
let strMap = new Map();
for (let k of Object.keys(obj)) {
    strMap.set(k, obj[k]);
}

// map转json
JSON.stringify(map)
JSON.stringify([...map])

// json转map
JSON.parse(jsonStr)

WeakMap()

WeakMap只接受对象作为键名(null除外),WeakMap的键名所指向的对象,不计入垃圾回收机制。

const wm1 = new WeakMap();

属性:没有size属性

遍历:不能遍历,因为成员是弱引用,随时可能会消失

方法:

set(key, value)
get(key)
o
粉丝 0
博文 500
码字总数 0
作品 0
私信 提问
加载中
请先登录后再评论。
ES6学习笔记之map、set与数组、对象的对比

ES6 ES5中的数据结构,主要是用Array和Object。在ES6中主要新增了Set和Map数据结构。到目前为止,常用的数据结构有四种Array、Object、Set、Map。下面话不多说了,来一起看看详细的介绍吧。 ...

osc_v8xs2czi
2018/09/11
1
0
ES6入门之Set 和 Map

1. Set 1.1 基本用法 Set 类似于数组,但是成员的 值都是唯一的,没用重复的值。Set本身是一个构造函数,用来生成Set数据结构。 Set 函数可以接受一个数组(或具有 iterable 接口的其他数据结...

故事胶片
2019/08/07
0
0
JS新增对象Map和Set

JS中新增了两个对象,Map和Set,Map是一组键值对的结构,具有极快的查找速度。Set是一组key的集合,但不存储value, 而且key不重复,可自动排重。 1. Map Map映射是ES6里面新增的一个对象,是...

투판시
06/16
0
0
用js来实现那些数据结构11(字典)

  我们这篇文章来说说Map这种数据结构如何用js来实现,其实它和集合(Set)极为类似,只不过Map是【键,值】的形式存储元素,通过键来查询值,Map用于保存具有映射关系的数据,Map里保存着...

osc_ab70hsav
2018/04/22
2
0
Nodejs下的ES6兼容性与性能分析

ES6标准发布后,前端人员也开发渐渐了解到了es6,但是由于兼容性的问题,仍然没有得到广泛的推广,不过业界也用了一些折中性的方案来解决兼容性和开发体系问题,但大家仍很疑惑,使用ES6会有...

ouven
2015/12/09
8K
14

没有更多内容

加载失败,请刷新页面

加载更多

Eclipse_JavaEE_Tomcat_MySQL环境配置

安装java环境,配置系统变量(JAVA_HOME,绝对路径) 下载eclipse+Tomcat+mysql window——》preference——》server——》runtime——》tomcat环境 项目右键build path 配mysql jar ,libra...

愿有时光可回首
今天
20
0
MySQL原理 - InnoDB引擎 - 行记录存储 - Redundant行格式

本文基于 MySQL 8 在上一篇:MySQL原理 - InnoDB引擎 - 行记录存储 - Compact格式 中,我们介绍了什么是 InnoDB 行记录存储以及 Compact 行格式,在这一篇中,我们继续介绍其他三种行格式。 ...

zhxhash
今天
29
0
leetcode面试题 17.13(恢复空格)--Java语言实现

求: 哦,不!你不小心把一个长篇文章中的空格、标点都删掉了,并且大写也弄成了小写。像句子"I reset the computer. It still didn’t boot!"已经变成了"iresetthecomputeritstilldidntboo...

拓拔北海
今天
19
0
B站跨年晚会究竟做对了什么?

燃财经(ID:rancaijing)原创 作者 | 赵磊 编辑 | 周昶帆 “补课”是《bilibili晚会 二零一九最美的夜》这个视频中,观众在前两分钟刷得最多的弹幕,寓意着观众是在元旦之后回来补看跨年晚会...

子乾建建_Jeff
01/07
59
0
关于Scrapy爬虫项目运行和调试的小技巧(上篇)

点击上方“Python爬虫与数据挖掘”,进行关注 回复“书籍”即可获赠Python从入门到进阶共10本电子书 今 日 鸡 汤 迟日江山丽,春风花草香。泥融飞燕子,沙暖睡鸳鸯。 扫除运行Scrapy爬虫程序...

yuhan336
04/02
26
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部