1.map的使用

  • 初始化的两种方式

a.

const map = new Map([['name','ouycx'],['age', 20]]);

b.

const map = new Map();

map.set('name', 'ouycx');
map.set('age', 20);
  • map的方法

1)set添加值

map.set('age', 20);

注意: 如果添加的值跟已添加的key值一样,会覆盖:

const map = new Map();

map.set('name', 'ouycx');
map.set('age', 20);
map.set('name','test');

2)  get获取值

map.get('age')

3)  delete删除某个key

map.delete('age')

map.delete('age') 如果删除成功返回的是true,剩下键值为name的属性值,如图:

4)  has判断某个属性是否在map里面,存在返回true,不存在返回false

map.has('name')

5) clear 清除所有的属性值

map.clear();

  • 遍历map输出值

我常用的是for ... of   , forEach方法:

1) for  .. of

const map = new Map();

map.set('name', 'ouycx');
map.set('age', 20); for(let [key, val] of map){
console.log("key:" + key + " value:" + val);
}

2) forEach

const map = new Map();

map.set('name', 'ouycx');
map.set('age', 20); map.forEach(function(val, key, map){
console.log("key:" + key + " value:" + val);
});

结果都是一样的

 2.set 的使用

  • 初始化的两种方式

a.

var set = new Set([2,3,4,5,5,6]);

b.

var set = new Set();

set.add(2);
set.add(3);
set.add(4);
set.add(5);
set.add(5);
set.add(6);

结果都一样:

  • set的方法

1)add 添加属性

var set = new Set();

set.add(2);
set.add(3);
set.add(4);
set.add(5);
set.add(5);
set.add(6);

注意,添加相同的值会覆盖

2)delete 删除属性

set.delete(3);

3) clear清除属性

set.clear();

  • 遍历属性的方法  for... of   与 forEach

1) for ... of

var set = new Set();

set.add(2);
set.add(3);
set.add(4);
set.add(5);
set.add(5);
set.add(6); console.log(set); for (var s of set){
console.log(s);
}

2) forEach

var set = new Set();

set.add(2);
set.add(3);
set.add(4);
set.add(5);
set.add(5);
set.add(6); console.log(set); set.forEach(function(v, k){
console.log("值为:" + v + " 索引为:" + k);
})

注意: value值  跟索引key 的值是一样的。

3)可以用扩展运算符遍历

var set = new Set();

set.add(2);
set.add(3);
set.add(4);
set.add(5);
set.add(5);
set.add(6); console.log(...set);

map 与 set的使用的更多相关文章

  1. mapreduce中一个map多个输入路径

    package duogemap; import java.io.IOException; import java.util.ArrayList; import java.util.List; imp ...

  2. .NET Core中间件的注册和管道的构建(3) ---- 使用Map/MapWhen扩展方法

    .NET Core中间件的注册和管道的构建(3) ---- 使用Map/MapWhen扩展方法 0x00 为什么需要Map(MapWhen)扩展 如果业务逻辑比较简单的话,一条主管道就够了,确实用不到 ...

  3. Java基础Map接口+Collections工具类

    1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...

  4. Java基础Map接口+Collections

    1.Map中我们主要讲两个接口 HashMap  与   LinkedHashMap (1)其中LinkedHashMap是有序的  怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...

  5. 多用多学之Java中的Set,List,Map

            很长时间以来一直代码中用的比较多的数据列表主要是List,而且都是ArrayList,感觉有这个玩意就够了.ArrayList是用于实现动态数组的包装工具类,这样写代码的时候就可以拉进 ...

  6. Java版本:识别Json字符串并分隔成Map集合

    前言: 最近又看了点Java的知识,于是想着把CYQ.Data V5迁移到Java版本. 过程发现坑很多,理论上看大部分很相似,实践上代码写起来发现大部分都要重新思考方案. 遇到的C#转Java的一些 ...

  7. MapReduce剖析笔记之八: Map输出数据的处理类MapOutputBuffer分析

    在上一节我们分析了Child子进程启动,处理Map.Reduce任务的主要过程,但对于一些细节没有分析,这一节主要对MapOutputBuffer这个关键类进行分析. MapOutputBuffer顾 ...

  8. MapReduce剖析笔记之七:Child子进程处理Map和Reduce任务的主要流程

    在上一节我们分析了TaskTracker如何对JobTracker分配过来的任务进行初始化,并创建各类JVM启动所需的信息,最终创建JVM的整个过程,本节我们继续来看,JVM启动后,执行的是Child ...

  9. MapReduce剖析笔记之五:Map与Reduce任务分配过程

    在上一节分析了TaskTracker和JobTracker之间通过周期的心跳消息获取任务分配结果的过程.中间留了一个问题,就是任务到底是怎么分配的.任务的分配自然是由JobTracker做出来的,具体 ...

  10. MapReduce剖析笔记之三:Job的Map/Reduce Task初始化

    上一节分析了Job由JobClient提交到JobTracker的流程,利用RPC机制,JobTracker接收到Job ID和Job所在HDFS的目录,够早了JobInProgress对象,丢入队列 ...

随机推荐

  1. 【ASP.NET 基础】WCF入门教程一(什么是WCF)?

    一.概述 Windows Communication Foundation(WCF)是由微软发展的一组数据通信的应用程序开发接口,可以翻译为Windows通讯接口,它是.NET框架的一部分.由 .NE ...

  2. SUSE CaaS Platform 4 - 使用 Ceph RBD 作为持久存储(动态)

    图1 架构图 图2 各存储插件对动态供给方式的支持状况 1.所有节点安装 # yum install ceph-common 复制 ceph.conf 到 worker 节点上 # scp admin ...

  3. 品Spring:对@PostConstruct和@PreDestroy注解的处理方法

    在bean的实例化过程中,也会用到一系列的相关注解. 如@PostConstruct和@PreDestroy用来标记初始化和销毁方法. 平常更多的是侧重于应用,很少会有人去了解它背后发生的事情. 今天 ...

  4. Java 学习笔记之 Sleep停止线程

    Sleep停止线程: 在Sleep状态下被interrupt,interrupted 状态会被擦除,返回false. 线程在Sleep状态下被interrupt: public class Sleep ...

  5. ELK 学习笔记之 elasticsearch head插件安装

    elasticsearch head插件安装: 准备工作: 安装nodejs和npm https://nodejs.org/en/download/ node-v6.11.2-linux-x64.ta ...

  6. Flask上下文管理机制流程(源码剖析)

    Flask请求上下文管理 1 偏函数 partial 使用该方式可以生成一个新函数 from functools import partial def mod( n, m ): return n % ...

  7. 详解PHP魔术函数、魔术常量、预定义常量

    一.魔术函数(13个) 1.__construct() 实例化对象时被调用, 当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用. 2.__des ...

  8. 设置Activity全屏的方法:

    1)代码隐藏ActionBar 在Activity的onCreate方法中调用getActionBar.hide();即可 2)通过requestWindowFeature设置 requestWind ...

  9. redis等缓存

    文章出处 https://www.cnblogs.com/wupeiqi/articles/5246483.html Model 到目前为止,当我们的程序涉及到数据库相关操作时,我们一般都会这么搞: ...

  10. RMAN详细教程(二):备份、检查、维护、恢复

    RMAN详细教程(一):基本命令代码 一.创建增量备份 增量备份级别为0-4,但为方便备份管理,oracle建议只限于0级和1级. 1.差异增量备份(differential incremental ...