es6新增了Set、Map、WeekSet、WeekMap 四种数据结构。C#中有HashSet和Dictionary,HashSet和Dictionary都是范式集合,但是es6不支持接口开发,所以也就不存在范式。Set 是存唯一值的集合,Map是存键值对的集合。WeakSet、WeakMap分别是它们的弱式表现的兄弟,只能存对象数据结构,拥有的方法少很多,使用时需要注意。

1、set:存放代表唯一值的集合。这个唯一是使用Object.is()来判断的。撸起:

let set = new Set([1,1,"1",2,3,{},["aa","bb","cc"],NaN,NaN]);
console.log(set);

let set = new Set([1,1,"1",2,3,{},["aa","bb","cc"],NaN,NaN]);
console.log(set);//方法列表
set.add("您好");//如果该值已经存在,不进行任何修改,没有该值才新增
set.delete("您好");//删除一项,如果有该项,返回true,如果没有返回false
set.clear();//清空集合set = new Set([1,1,"1",2,3,{},["aa","bb","cc"],NaN,NaN]);//循环迭代器
set.forEach(function (value,key) {console.log(key,":",value);
})
//生成器
let itr =set.entries();
console.log("itr.next():",itr.next())
console.log("itr.next():",itr.next());//将set 转换为数组
let arr = [...set];//展开运算符
console.log("arr:",arr);

2、WeakSet:存放代表唯一值的集合,是Set的弱化版本,只有add()、has()、delete()方法,不能迭代(foreach()、key()、values()等方法),不可以实例化的时候初始默认值,保存的值必须是对象数据结构。撸起:

let wset = new WeakSet();
let key = {name:"爱钱的大傻憨",age:18
};//wset.add("1");//报错
wset.add(key);
console.log("wset:",wset);console.log("wset.delete(key):",wset.delete(key));
console.log("wset:",wset);

3、Map:存放代表唯一值的集合,是Set的弱化版本,只有add()、has()、delete()方法,不能迭代(foreach()、key()、values()等方法),不可以实例化的时候初始默认值,保存的值必须是对象数据结构。撸起:

let map = new Map([["name","爱钱的大傻憨"],["age",18]]);
console.log("map:",map);
map.set("work",function(){alert('Hell')});//没有add方法,只有set方法
console.log("map:",map);

4、WeakMap:Map的弱表现数据结构,相对map来说,功能也是弱很多。

let wmap = new WeakMap();
wmap.set({name:"爱钱的大傻憨"},"您好");
console.log(wmap);

Set、Map是es的一种新数据结构,类似于数组,但是key是唯一的。WeakSet、WeakMap请少用,因为它的key值要求比较特殊,一定得考虑好了再使用。

android数据存放map_ES6 的新鲜玩意儿——集合set、map、WeekSet、WeekMap相关推荐

  1. android数据存放map_go语言学习笔记(18)-二维数组和map

    二维数组 二维数组在声明/定义时有对应四种写法(类似一维数组) var 数组名 [大小][大小]类型 = [大小][大小]类型{{初值...},{初值...}} var 数组名 [大小][大小]类型 ...

  2. android数据存放map_android - Java后台把数据用json发到手机端,里面是map存放的,必须要说明数据的类型?...

    问 题 List reList = new ArrayList(); for(int i=0;i Zqwl_yd_jdxx bjd = bjdList.get(i); HashMap temp = n ...

  3. android数据存放map_Android存储数据到本地文件

    xml文件 xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_pare ...

  4. Android数据持久化技术

    Android 数据持久化技术 数据持久化 文件存储 将数据存储到文件中 从文件中读取数据 SharedPreferences存储 使用SharedPreferences存储数据 从SharedPre ...

  5. 【Android数据存储】ContentProvider详细介绍(附实例源码)

    1.ContentProvider是什么? ContentProvider--内容提供者.它是一个类,这个类主要是对Android系统中进行共享的数据进行包装,并提供了一组统一的访问接口供其他程序调用 ...

  6. Android数据存储几种方式用法总结

    Android数据存储几种方式用法总结 1.概述 Android提供了5种方式来让用户保存持久化应用程序数据.根据自己的需求来做选择,比如数据是否是应用程序私有的,是否能被其他程序访问,需要多少数据存 ...

  7. Android数据存储之GreenDao 3.0 详解

    前言: 今天一大早收到GreenDao 3.0 正式发布的消息,自从2014年接触GreenDao至今,项目中一直使用GreenDao框架处理数据库操作,本人使用数据库路线 Sqlite----> ...

  8. < Android数据存储> 任务二 应用程序数据文件夹里的文件读写

    :zh]Android中提供了两个方法用来打开应用程序的数据文件夹IO流. 1.FileInputStream openFileInput(String name):参数name表示某个文件名,该方法 ...

  9. 5 Android数据存储 任务二 应用程序数据文件夹里的文件读写 ,

    Android中提供了两个方法用来打开应用程序的数据文件夹IO流. 1.FileInputStream openFileInput(String name):参数name表示某个文件名,该方法用于打开 ...

最新文章

  1. 虚拟主机上传SQLServer数据库--不完全资料
  2. 无线通信AI大赛正式开放评测,50万大奖等你霸榜!
  3. 深度学习-Tensorflow2.2-批标准化简介-14
  4. 计算机无法用u盘重装系统,没有u盘电脑开不了机重装系统的方法步骤详细教程 - 系统家园...
  5. red linux安装mysql_RedHat下安装MySQL5.5
  6. (转)几种常用存储过程分页方法
  7. 使用jquery插件报错:TypeError:$.browser is undefined的解决方法
  8. LeetCode 1522. Diameter of N-Ary Tree(递归)
  9. Chrome DevTools:如何过滤网络请求
  10. jsp中动态include与静态include的区别
  11. 计算机专业英语第五章ppt,计算机专业英语课件5.ppt
  12. iOS的帮助网站(企业包发布)adhoc的测试
  13. keras实现多层LSTM
  14. 生产订单“生产线别”带入生产入库单
  15. ADOBE CS3 序列号
  16. 中国莽草酸行业市场深度调查报告(2022版)
  17. 风险准备(金)这样(估)算,来年工作不白干
  18. 重拾C语言——结构体和共用体
  19. 一个严谨的STM32串口DMA发送接收(1.5Mbps波特率)机制
  20. 技巧:Vimdiff 使用

热门文章

  1. Orchard Core Framework:ASP.NET Core 模块化,多租户框架
  2. Visual Studio 2017 新功能(上)
  3. 深入理解Async/Await
  4. 【干货】”首个“ .NET Core 验证码组件
  5. 【QGIS入门实战精品教程】3.1:QGIS如何连接SQL Server数据库?
  6. C++之‘nullptr’ was not declared in this scope
  7. Android之root手机之后用busybox找到我们需要删除的文件
  8. Android之自定义属性,format详解
  9. 《看聊天记录都学不会C语言?太菜了吧》(13)(9*9 乘法表)寻找电脑中的盲盒彩蛋
  10. (十一)python3 只需3小时带你轻松入门——面向对象