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对象,丢入队列 ...
随机推荐
- C++——指针
目录 一.地址和指针 1.1内存 1.2针和指针变量 二.指针变量 2.1始化 2.2赋值 2.3指针类型算术运算 2.4指针类型关系运算 2.5指向指针的指针 三.指针与数组 3.1指针运算 3.2 ...
- Hyper-V安装CentOS 8问题
CentOS 8 已经发布很长时间了,作为一直折腾Linux虚拟机的一员怎么少的了我. 环境&准备工作 系统:Win 10 pro 19H1 虚拟机:Hyper-V ISO:CentOS 8 ...
- Centos6 日常使用小结
网络配置目录 1./etc/sysconfig/network-script/ifcfg-eth0 2.netstat -rn Kernel IP routing table Destination ...
- MongoDB 学习笔记之 索引选项和重建索引
索引选项: {background:true}在后台创建索引,索引在构建过程中,其他客户端仍然可以查询数据,不会阻塞. db.comments.createIndex({anonymous: 1},{ ...
- beego之操作model
beego之操作model 1.环境配置 1>.下载安装orm go get github.com/astaxie/beego/orm 默认安装路径在gopath路径下,可使用go env查看路 ...
- PHP7源码之array_flip函数分析
以下源码基于 PHP 7.3.8 array array_flip ( array $array ) (PHP 4, PHP 5, PHP 7) array_flip - 交换数组中的键和值 arra ...
- 【Tomcat】tomcat7 设置成系统服务启动
1.启动cmd 2.cd C:\Program Files\tomcat7\bin 3.service.bat install 4.打开tomcat7w.exe可以启动管理服务
- Ubuntu16.04常用C++库安装及环境配置
1. 常用非线性求解库Ceres #================================================================================== ...
- 02-14 scikit-learn库之逻辑回归
目录 scikit-learn库之逻辑回归 一.LogisticRegression 1.1 使用场景 1.2 代码 1.3 参数详解 1.4 属性 1.5 方法 二.LogisticRegressi ...
- Spring bean的作用域以及生命周期
一.request与session的区别 request简介 request范围较小一些,只是一个请求. request对象的生命周期是针对一个客户端(说确切点就是一个浏览器应用程序)的一次请求,当请 ...