1.Set和WeakSet

Set与数组相似,但是Set结构的成员必须是唯一的.

WeakSet与对象类型,但是WeakSet结构的成员只能是对象

Set结构的实例属性和方法

  属性:

    Set.prototype.constructor:构造函数

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

  方法:

    --add(value):添加值,返回Set结构本身

    --delete(value):删除某个值,返回一个布尔值

    --has(value):返回一个布尔值,判断该值是否为Set的成员

    --clear:清除所有成员,没有返回值

Set结构遍历方法:

  --keys:返回键对的遍历器

  --values:返回键值的遍历器

  --entries:返回键值对的遍历器

  --forEach:使用回调遍历每个成员

  1. //声明一个Set类型(一)
  2. var set = new Set([1,2,3,4,2,8,4]);
  3. //声明一个Set类型(二)
  4. var set = new Set();
  5. for(let i =0;i<5;i++){
  6. set.add(i);
  7. }
  8. for(let elem of set){
  9. console.log(elem); // 1,2,3,4,8
  10. }

扩展运算符 (...),转成数组

  1. var set = new Set();
  2. [1,2,4,8,3,4].map(function(elem){
  3. set.add(elem);
  4. });
  5. console.log("set = "+set); //set = [object Set]
  6. //扩展运算,将setL类型变成数组类型
  7. var arr = [...set];
  8. console.log("arr = " +arr);//arr = 1,2,4,8,3

删除和清空

  1. var set = new Set();
  2. [1,2,4,8,3,4].map(function(elem){
  3. set.add(elem);
  4. });
  5. console.log("set = "+set); //set = [object Set]
  6. set.delete(2); //删除2 arr = 1,4,8,3
  7. set.clear(); //清空 arr=
  8. //扩展运算,将setL类型变成数组类型
  9. var arr = [...set];
  10. console.log("arr = " +arr);//arr = 1,2,4,8,3

遍历键值

  1. var set = new Set();
  2. [1,2,4,8,3,4].map(function(elem){
  3. set.add(elem);
  4. });
  5. //键和值是相同的
  6. set.forEach(function(value,key){
  7. console.log(key + " = " + value);//1=1,2=2,3=3,4=4,8=8
  8. });

WeakSet方法:

  --add(value):添加 一个成员

  --delete(value):清楚指定成员

  --has(value):返回一个boolean,判断某个值是否存在

WeakSet的对象都是弱应用,即垃圾回收机制不考虑WeakSet对该对象的引用,也就是说如果其他的对象都不再引用该对象,该对象就会被回收机制收回。因此,WeakSet是不可遍历的,因为成员很可能在遍历之后被回收了,消失了,成员就取不到了。

 

2.Map和WeakMap 

  

es6--(三)set和map数据结构的更多相关文章

  1. es6的Set和Map数据结构

    Set 和 Map 数据结构 Set WeakSet Map WeakMap Set § ⇧ 基本用法 ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set ...

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

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

  3. ES6笔记03-Set和Map数据结构

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

  4. ES6 学习 -- Set和Map数据结构

    一.Set对象数据结构 1.Set数据结构类似数组,但是其每个成员都是唯一值,没有重复,且Set本身是一个构造函数,用来生成Set数据结构,用法如下: const setData = new Set( ...

  5. es6(三set和map数据结构)

    es6中提供了一个新的数据结构Set,他有点类似数组,但和数组不同的是,在里面你如果写入重复的值的话,他不会显示重复值. const s =new Set(); [2,3,4,5,6,6,6,7,8, ...

  6. 前端笔记之React(六)ES6的Set和Map&immutable和Ramda和lodash&redux-thunk

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

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

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

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

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

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

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

  10. ES6的新特性(12)——Set 和 Map 数据结构

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

随机推荐

  1. 关于给予webApp框架的开发工具

    webApp 1.phonegap webApp即基于html+css+javascript,对于新手会联想好多及疑问(如数据的添删查修如何实现,参数传递如何实现) 添加查修使用jsonp跨域实现的 ...

  2. Organic Solar Cells - Theory and Practice

    renewable engergy: Wind solar Tidal Wave Ocean Bio Etc. How much energy we gonna need as following y ...

  3. continue与break

    1.continue语句,1至20内奇数累加和 #include<iostream> using namespace std; void main(){ int i=0; int sum= ...

  4. android.database.CursorIndexOutOfBoundsException: Index <m> requested, with a size of <n>

    遇到这样的问题比较郁闷,造成上述问题的原因也是多种多样的. 总结一下原因: 1:得到cursor对象,没有moveToPosition()或者moveToNext()等游标操作就进行cursor.ge ...

  5. 怎样求FIRST集、FOLLOW集和SELECT集

    一,要知道什么是终结符和非终结符. 终结符:通俗的说就是不能单独出现在推导式左边的符号,也就是说终结符不能再进行推导. 非终结符:不是终结符的都是非终结符.(非男即女,呵呵) 如:A-->B,则 ...

  6. MyBatis 框架笔记

    Mybatis 框架笔记   ------技术源于热爱! 获取更多内容请关注小编的个人微信公众平台 1       Mybatis入门 1.1     单独使用jdbc编程问题总结 1.1.1  jd ...

  7. [开发者账号] ios7苹果开发者账号申请

    1.登陆  https://developer.apple.com/ 2.点击网站最底部的 3.点击 4.然后根据提示继续点击 注意:1.点击的过程中注意个人和企业账号  开发者类型等 2.付款账号的 ...

  8. 《Django By Example》第六章 中文 翻译 (个人学习,渣翻)

    书籍出处:https://www.packtpub.com/web-development/django-example 原作者:Antonio Melé (译者注:无他,祝大家年会都中奖!) 第六章 ...

  9. app外包开发注意事项大全『最新』

    随着移动互联网的高速发展,很多互联网创业公司或传统向互联网转型的公司都急需发开一款app软件,多数公司会选择让外包公司来开发.问题来了,App外包市场鱼龙混杂,我们要如何在这里面选择一个靠谱的公司,这 ...

  10. python绝技 — 侦听802.11 Probe请求

    代码 #!/usr/bin/python #--*--coding=utf-8--*-- from scapy.all import * interface = 'wlan1' probeReqs = ...