Set的用法

set的key一定是字符串

{

let list=new Set(); list.add(5);//向set中增加值要用add() list.add(6); console.log('size',list.size);//set的长度要用size

}

结果为size 2

还有一种声明方法,在set初始化时就定义值

{ let arr=[1,2,3,4,5];

let list=new Set(arr);

console.log('size',list.size); }

结果为size 5

size中的数据是唯一的,如果添加进去重复的数据,不会报错,但是只会显示一个,这种特性可以用来去重

{ let list=new Set();

list.add(1);

list.add(2);

list.add(1);

console.log('list',list);

}

上面的代码中多添加了一个1,但是只会显示一个1

let arr=[1,2,3,1,2];

let list2=new Set(arr);

console.log('list2',list2);

set不会转换数据类型

let arr=[1,2,3,1,'2'];//前面的2是数值,后面的2是字符

let list2=new Set(arr);

console.log('list2',list2);

set方法

添加:add

删除:delete

清空:clear

查看是否有某元素:has

遍历

{

let arr=[1,2];

let list=new Set(arr);

//遍历

for(let key of list.keys())

{ console.log('key ',key); }
for(let value of list.values())

{ console.log('value ',value); }

//如果不加方法,默认的会是value值

for(let value of list)

{ console.log('value/ ',value); }

for(let [key,value] of list.entries())

{ console.log('key,value ',key,value); }

}

遍历还可以使用forEach

list.forEach(function(item)

{ console.log('item',item); })

WeakSet的用法

WeakSet和Set支持的数据不一样吗,weakset的元素只能时候对象

weakset是一个弱引用,不会去检测是否与垃圾回收机制挂钩上

{

{ let weaklist=new WeakSet();

let arg={};//这个是一个对象

weaklist.add(arg);

console.log('weaklist',weaklist);

}

如果是weaklist.add(2);这样会报错

weakset没有clear方法

weakset没有set属性

weakset不能遍历

其他和set一样

Map的用法

map的key可以是多种类型

{ //声明

let map=new Map();

let ar=['123']; map.set(ar,456);//添加元素

console.log('map',map,map.get(ar));

}

还有初始化时赋值

{ let map=new Map([['a',123],['b',456 ]]);

console.log('map args',map); }

map的方法

求大小:size

获取值:get

添加值:set

删除:delete

清空:clear

遍历

和set一模一样

WeakMap的用法

weakmap与map的区别可以对比weakset与set的区别来验证

es6-set-map数据结构的更多相关文章

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

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

  2. ES6中map数据结构学习

    在项目中遇到一个很恶心的需求,然后发现ES6中的map可以解决,所以简单学习了一下map. Javascript的Object本身就是键值对的数据结构,但实际上属性和值构成的是“字符串-值”对,属性只 ...

  3. ES6中map数据结构

    key值可以任意值或对象,value值可以是任意值或对象 let json={ name:'eternity', skill:'java' }; let map=new Map(); map.set( ...

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

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

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

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

  6. es6学习笔记-set和map数据结构

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

  7. JavaScript(ES6)学习笔记-Set和Map数据结构(一)

    一.Set 1.ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. , , , , ']); s; // ...

  8. es6笔记(5)Map数据结构

    概要 字典是用来存储不重复key的Hash结构.不同于集合(Set)的一点,字典使用的是[key,value]的形式来存储数据. JavaScript的对象(Object:{})只能用字符串当做key ...

  9. js ES6 Set和Map数据结构详解

    这篇文章主要介绍了ES6学习笔记之Set和Map数据结构,结合实例形式详细分析了ECMAScript中基本数据结构Set和Map的常用属性与方法的功能.用法及相关注意事项,需要的朋友可以参考下   本 ...

  10. ES6系列_12之map数据结构

    1.map数据结构出现的原因? JavaScript 的对象(Object),本质上是键值对的集合(Hash 结构),但是传统上只能用字符串当作键.这给它的使用带来了很大的限制.为了能实现将对象作为键 ...

随机推荐

  1. 递归算法详细分析->C

    C通过运行时堆栈支持递归函数的实现.递归函数就是直接或间接调用自身的函数.     许多教科书都把计算机阶乘和菲波那契数列用来说明递归,非常不幸我们可爱的著名的老潭老师的<C语言程序设计> ...

  2. 【ACM】hdu_1091_A+BIII_201307261112

    A+B for Input-Output Practice (III)Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/327 ...

  3. 2014腾讯实习生笔试题——define与typedef

    2014腾讯实习生笔试(广州站)第26题填空题: #define MAX_NUM 1000+1 int Temp = Max_NUM*10; 则Temp的值为( ) 答案是:1010, 由于宏定义仅仅 ...

  4. Linux(redhat 5.8)下 安装jetty 部署 使用

    首先须要安装JDK,自行解决 下载jetty安装包http://dist.codehaus.org/jetty/ 我下载的是8.1.15 tar -xzvf *.tar.gz 解压完之后,基本就能够用 ...

  5. DBI(i80)/DPI(RGB)/DSI【转】

    本文转载自:http://blog.csdn.net/liuxd3000/article/details/17437317 (1)DBI接口 A,也就是通常所讲的MCU借口,俗称80 system接口 ...

  6. SQL排他锁的解决方案

    SQL排他锁的解决方案 分类: 事务与锁 数据库管理维护2009-04-28 22:41 680人阅读 评论(0) 收藏 举报 sql数据库database服务器killdisk 问题描述: 我有一个 ...

  7. C# 验证数字的正则表达式集

    验证数字的正则表达式集 博客分类: 正则 正则表达式 验证数字的正则表达式集 验证数字:^[0-9]*$ 验证n位的数字:^\d{n}$ 验证至少n位数字:^\d{n,}$ 验证m-n位的数字:^\d ...

  8. bzoj 1093 [ ZJOI 2007 ] 最大半连通子图 —— 拓扑+DP

    题目:https://www.lydsy.com/JudgeOnline/problem.php?id=1093 先缩点,然后就是找最长链,DP一下即可: 注意缩点后的重边!会导致重复计算答案. 代码 ...

  9. 95.Extjs 表单中自定义的验证规则 VTypes

    1 Ext.onReady(function(){ Ext.QuickTips.init(); //重写 (自定义)xtype Ext.apply(Ext.form.VTypes,{ repetiti ...

  10. Alignment(dp)

    http://poj.org/problem?id=1836 求两遍最长上升子序列,顺序求一遍,逆序求一遍. #include <stdio.h> #include <string. ...