set和 map 数据结构
set/map数据结构
创建:
var s=new Set();
添加成员
s.add(1)
遍历
for of
s.froEach
删除
s.delete()
判断存在
s.has()
清除
s.clear()
转为数组
array.from(set)
支持 keys. values. entries
s.keys, 注意和 Object.的区别, set不支持 Object.keys
特性
不接受添加重复的值, 所以 set 里面的值都是唯一的
判断两个值是否相等使用的是类似 ===
初始化set的时候可以接受一个数组或者一个字符串, 如果接受的是字符串那么会把字符串分解为一个数组, 不接受对象及其他基本类型, (因为都是不可迭代的??)
set 接受 ... 的方式做扩展
因为两个对象总是不相等的, 所以 set 会接受两个空对象
set 的成员可以是任何的数据类型
set 成员添加的顺序就是遍历出的顺序, 所以 set 是有序的
用法;
数组去重
真心感觉这个数据结构的没啥用啊, 主要是成员有序加不重复这个特性
WeakSet
特性
成员只能是对象
对象的引用不计入垃圾回收机制
不可遍历, 因为其成员的数是不固定的, 垃圾回收机制随时可能清空其中的一个成员, 所以不可遍历
其余相同
初始化
可以接受一个数组, 但是数组成员必须是对象
方法
delete
add
has
这个东西有啥子用吗, 闷逼脸, 都不可以遍历, 真不知道什么情况下使用. 这个东西是用来监听对象的引用的吗
Map 数据结构
特性
map就是 Object 的一种改进
map 的键和值可以使任何类型, 但是 Object不行
map 判断相等也是使用的 === 的加强版本
map 的元素是有序的
map的底层实现可能就是数组, 因为从使用来看, 确实在和数组之间转换比较容易
初始化
可以接受一个二维的数组, 其中数组元素必须有两个元素
可以接受 set 做初始化数据
方法
set, 多次的相同的键会覆盖
get
has
delete
clear
遍历
keys
values
entries
for of, 可以直接拿到 value, 但是 for of 不能遍历 Object的, 为此 es6 新增了 Object.values
接受 ...
可以使用 forEach
转为数组
使用 ... 直接转换
weakMap
weakMap 和 weakSet 的形式差不多, 也是只接受对象, 并且是弱引用, 但是只是键名是弱的, 值还是强的
特性
没有遍历方法
方法
get
set
delete
has
用处
在一个对象上设置依赖其的变量, 一旦变量不被引用, 那么其所依赖的变量都消失
set和 map 数据结构的更多相关文章
- 11 Set和Map数据结构
Set和Map数据结构 Set WeakSet Map WeakMap 首先 这四个对象都是 数据结构. 用于存放数据 Set 类似数组. 但是不能重复. 如果你有重复数据,会自动忽略 属性 size ...
- ES6 之 Set数据结构和Map数据结构 Iterator和for...of循环
ECMAScript 6 入门 Set数据结构 基本用法 ES6提供了新的数据结构Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set本身是一个构造函数,用来生成Set数据结构. va ...
- ES6中的Set、Map数据结构
Map.Set都是ES6新的数据结构,他们都是新的内置构造函数.也就是说typeof的结果,多了两个. 他们是什么: Set是不能重复的数组. Map是可以任何东西当做键的对象: ES6 提供 ...
- ECMAScript 6之Set和Map数据结构
Set 基本用法 ES6提供了新的数据结构Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set本身是一个构造函数,用来生成Set数据结构. var s = new Set(); [2, ...
- es6学习笔记-set和map数据结构
ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. const s = new Set(); [2, 3 ...
- js-ES6学习笔记-Set和Map数据结构
1.ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. 2.Set 函数可以接受一个数组(或类似数组的对 ...
- JavaScript(ES6)学习笔记-Set和Map数据结构(一)
一.Set 1.ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. , , , , ']); s; // ...
- Map 数据结构
JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键.这给它的使用带来了很大的限制. 为了解决这个问题,ES6 提供了 Map 数据结构. ...
- go map数据结构
map数据结构 key-value的数据结构,又叫字典或关联数组 声明: var map1 map[keytype]valuetype var a map[string]string var a ma ...
随机推荐
- TortoiseGit与GIt生成ssh秘钥添加到github账号的简单方法!简单使用
今天升级了自己电脑上的git与TortoiseGit,全部换成了最新版,后来不知道怎么的git的秘钥还能使用,可以直接拉取或者提交ssh地址克隆的代码,可是小乌龟客户端就悲剧了 公司的项目有key.p ...
- vim简单使用教程【转】
vim的学习曲线相当的大(参看各种文本编辑器的学习曲线),所以,如果你一开始看到的是一大堆VIM的命令分类,你一定会对这个编辑器失去兴趣的.下面的文章翻译自<Learn Vim Progress ...
- 【转】【Linux】Swap与Memory
背景介绍 Memory指机器物理内存,读写速度低于CPU一个量级,但是高于磁盘不止一个量级.所以,程序和数据如果在内存的话,会有非常快的读写速度.但是,内存的造价是要高于磁盘的,且内存的断电丢失数据也 ...
- 【原创】大数据基础之Mesos(1)简介、安装、使用
Mesos 1.7.1 官方:http://mesos.apache.org/ 一 简介 Program against your datacenter like it’s a single pool ...
- 三目算法、if/else,switch/case运用
//输入学生的成绩,判断考试是否及格,及格6大于等于0 //第一种写法:三目运算 大多用于单独判断是否满足某个条件 import java.util.Scanner; public class Hel ...
- Java的家庭记账本程序(I)
日期:2019.2.26 博客期:037 星期二 Part 1: 今天使用新的"radio"标签,将搜索方式的选则内容更改了,如下图,不过,研究了很久的数据库连接也还是没有成功!嗯 ...
- win7下安装linux(centos6.5)双系统详细小白教程
在正式介绍linux安装教程之前,先声明一下本人也是刚开始接触linux,所以教程只以成功安装linux为目标,里面的具体步骤我都是参考网上的教程自己操作实现的,至于为什么要这么做就不多做解释,大家想 ...
- tensorflow安装-【老鱼学tensorflow】
TensorFlow是谷歌基于DistBelief进行研发的第二代人工智能学习系统,其命名来源于本身的运行原理.Tensor(张量)意味着N维数组,Flow(流)意味着基于数据流图的计算,Tensor ...
- SQL反模式学习笔记9 元数据分裂
目标:支持可扩展性.优化数据库的结构来提升查询的性能以及支持表的平滑扩展. 反模式:克隆表与克隆列 1.将一张很长的表拆分成多张较小的表,使用表中某一个特定的数据字段来给这些拆分出来的表命名. 2.将 ...
- request.getParameter和request.setAttribute/request.getAttribute
https://blog.csdn.net/ryelqy/article/details/79230513 request.getQueryString https://blog.csdn.net/w ...