map 与 set的使用
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的使用的更多相关文章
- mapreduce中一个map多个输入路径
package duogemap; import java.io.IOException; import java.util.ArrayList; import java.util.List; imp ...
- .NET Core中间件的注册和管道的构建(3) ---- 使用Map/MapWhen扩展方法
.NET Core中间件的注册和管道的构建(3) ---- 使用Map/MapWhen扩展方法 0x00 为什么需要Map(MapWhen)扩展 如果业务逻辑比较简单的话,一条主管道就够了,确实用不到 ...
- Java基础Map接口+Collections工具类
1.Map中我们主要讲两个接口 HashMap 与 LinkedHashMap (1)其中LinkedHashMap是有序的 怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...
- Java基础Map接口+Collections
1.Map中我们主要讲两个接口 HashMap 与 LinkedHashMap (1)其中LinkedHashMap是有序的 怎么存怎么取出来 我们讲一下Map的增删改查功能: /* * Ma ...
- 多用多学之Java中的Set,List,Map
很长时间以来一直代码中用的比较多的数据列表主要是List,而且都是ArrayList,感觉有这个玩意就够了.ArrayList是用于实现动态数组的包装工具类,这样写代码的时候就可以拉进 ...
- Java版本:识别Json字符串并分隔成Map集合
前言: 最近又看了点Java的知识,于是想着把CYQ.Data V5迁移到Java版本. 过程发现坑很多,理论上看大部分很相似,实践上代码写起来发现大部分都要重新思考方案. 遇到的C#转Java的一些 ...
- MapReduce剖析笔记之八: Map输出数据的处理类MapOutputBuffer分析
在上一节我们分析了Child子进程启动,处理Map.Reduce任务的主要过程,但对于一些细节没有分析,这一节主要对MapOutputBuffer这个关键类进行分析. MapOutputBuffer顾 ...
- MapReduce剖析笔记之七:Child子进程处理Map和Reduce任务的主要流程
在上一节我们分析了TaskTracker如何对JobTracker分配过来的任务进行初始化,并创建各类JVM启动所需的信息,最终创建JVM的整个过程,本节我们继续来看,JVM启动后,执行的是Child ...
- MapReduce剖析笔记之五:Map与Reduce任务分配过程
在上一节分析了TaskTracker和JobTracker之间通过周期的心跳消息获取任务分配结果的过程.中间留了一个问题,就是任务到底是怎么分配的.任务的分配自然是由JobTracker做出来的,具体 ...
- MapReduce剖析笔记之三:Job的Map/Reduce Task初始化
上一节分析了Job由JobClient提交到JobTracker的流程,利用RPC机制,JobTracker接收到Job ID和Job所在HDFS的目录,够早了JobInProgress对象,丢入队列 ...
随机推荐
- 【ADO.NET-中级】百万级数据的批量插入的两种方法测试
在SQL Server 中插入一条数据使用Insert语句,但是如果想要批量插入一堆数据的话,循环使用Insert不仅效率低,而且会导致SQL一系统性能问题.下面介绍SQL Server支持的两种批量 ...
- 机器学习回顾篇(6):KNN算法
1 引言 本文将从算法原理出发,展开介绍KNN算法,并结合机器学习中常用的Iris数据集通过代码实例演示KNN算法用法和实现. 2 算法原理 KNN(kNN,k-NearestNeighbor)算法, ...
- Java 学习笔记之 异常法停止线程
异常法停止线程: public class RealInterruptThread extends Thread { @Override public void run() { try { for ( ...
- 斐波那契数列n项的值。(递归和非递归算法Golang实现)
递归实现: func f(num int) int { if num == 1 || num == 2 { return 1 } return f(num-1) + f(num-2) } 非递归实现: ...
- Spring项目启动报"Could not resolve placeholder"解决
1.问题的起因: 除去properites文件路径错误.拼写错误外,出现"Could not resolve placeholder"很有可能是使用了多个PropertyPlace ...
- KafkaStream-高级别API
使用Streams DSL构建一个处理器拓扑,开发者可以使用KStreamBuilder类,它是TopologyBuilder的扩展.在Kafka源码的streams/examples包中有一个简单的 ...
- Java 操作Word表格——创建嵌套表格、添加/复制表格行或列、设置表格是否禁止跨页断行
本文将对如何在Java程序中操作Word表格作进一步介绍.操作要点包括 如何在Word中创建嵌套表格. 对已有表格添加行或者列 复制已有表格中的指定行或者列 对跨页的表格可设置是否禁止跨页断行 创建表 ...
- 设计模式常见面试知识点总结(Java版)
设计模式 这篇总结主要是基于我设计模式系列的文章而形成的的.主要是把重要的知识点用自己的话说了一遍,可能会有一些错误,还望见谅和指点.谢谢 更多详细内容可以到我的cdsn博客上查看: https:// ...
- mysqlbinlog增量恢复(基于使用事件位置position的恢复)
1.在xtrabackup 备份+还原文章中我们记录了备份到的binlog文件名和position点位置使用如下命令就可以进行增量的恢复了shell> mysqlbinlog --stop-po ...
- SQL创建和调用有默认值的存储过程
先创建一个有默认值的存储过程 create procedure usp_unpass ), --有默认值的参数放到最后 as select @score go 该存储过程有2个参数 ,其中@score ...