es6笔记(5)Map数据结构
概要
字典是用来存储不重复key的Hash结构。不同于集合(Set)的一点,字典使用的是[key,value]的形式来存储数据。
JavaScript的对象(Object:{})只能用字符串当做key。使用起来有一定限制。
为了解决这个问题,ES6提供的Map数据结构。它类似与对象,也是[key,value]的集合,但是key的范围不限于字符串,各种类型的值(包括对象)都可以当做key。
也就是说Object结构提供了 “字符串--值”的对应;
Map提供了“值--值”的对应,是一种完善的Hash结构的实现。
如果需要使用键值对的数据结构,Map比Object更合适。
//对于Object只能使用字符串作为key这一点,例如一下代码。
var obj = {},
key1={b:22},
key2={c:33};
obj[key1] = 1;
obj[key2] = 2;
//此时key1,key2都会被转成字符串“[object Object]”
console.log(obj); //Object{[object Object] : 2}
使用
1 创建一个Map
const map = new Map([
['a',1],['b',2]
]);
console.log(map); // {"a" => 1, "b" => 2}
2 Map 类的属性
console.log(map.size); //字典长度
3 Map 类的方法
set(key,value)
设置一个键值对,然后返回整个Map结构。如果Key已经有值,则键值被更新,否则生成该键。
map里面的key的排序顺序是按照添加的顺序排列的。
map.set('jd','www.jd.com')
.set('baidu','www.baidu.com');
console.log(map);
get(key)
读取key对应的键值,如果找不到key,返回undefined。
console.log(map.get('jd')); //wwww.jd.com
console.log(map.get('x')); //undefined
delete(key)
删除某个键,成功返回true,失败返回false。
console.log(map.delete('baidu')); // true
console.log(map.delete('baidu')); // false
has(key)
判断某个key是否在map中存在,返回一个布尔值。
console.log(map.has('jd')) //true
clear()
清除所有数据,无返回值
map.clear();
console.log(map); // Map(0) {}
keys()
返回键名的遍历器
const map = new Map([
['jd','www.jd.com'],
['baidu','www.baidu.com']
]);
console.log(map.keys()); // MapIterator {"baidu","jd"}
values()
返回键值的遍历器
console.log(map.values()); // MapIterator {"www.baidu.com","www.jd.com"}
entries
返回键值对的遍历器
console.log(map.entries()); // MapIterator {['jd','www.jd.com'],['baidu','www.baidu.com']}
forEach()
使用回调函数遍历每个成员
map.forEach(function(key,value,map){
console.log(key + ':' + value); // baidu:www.baidu.com
})
es6笔记(5)Map数据结构的更多相关文章
- js ES6 Set和Map数据结构详解
这篇文章主要介绍了ES6学习笔记之Set和Map数据结构,结合实例形式详细分析了ECMAScript中基本数据结构Set和Map的常用属性与方法的功能.用法及相关注意事项,需要的朋友可以参考下 本 ...
- es6 Set 和Map 数据结构
ES6提供了新的数据结构Set,它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个数据结构,用来生成Set 数据结构. const s = new Set(); [2,3,5,4 ...
- es6入门7--Set Map数据结构
本文作为ES6入门第十三章的学习整理笔记,可能会包含少部分个人的理解推测,若想阅读更详细的介绍,还请阅读原文ES6入门 一.set数据结构 1.set不接受重复值 ES6新增了Set构造函数用于创建s ...
- ES6 set和map数据结构对对象数组去重简单实现
自从有了es6的set数据结构,数组的去重可以简单用一行代码实现,比如下面的方式 let arr = [1, 2, 2, 3, 4] function unique (arr) { return [. ...
- ES6之前模拟Map数据结构的写法
在ES6之前JavaScript 里面本身没有map对象,但是用JavaScript的Array.Object来模拟实现Map的数据结构. 现在已经有Map对象了,这里记录一下之前的写法 Array方 ...
- ES6中Map数据结构学习笔记
很多东西就是要细细的品读然后做点读书笔记,心理才会踏实- Javascript对象本质上就是键值对的集合(Hash结构),但是键只能是字符串,这有一定的限制. 1234 var d = {}var e ...
- es6学习笔记-set和map数据结构
ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. const s = new Set(); [2, 3 ...
- JavaScript(ES6)学习笔记-Set和Map数据结构(一)
一.Set 1.ES6 提供了新的数据结构 Set.它类似于数组,但是成员的值都是唯一的,没有重复的值. Set 本身是一个构造函数,用来生成 Set 数据结构. , , , , ']); s; // ...
- ES6学习笔记(九)Set和Map数据结构
1.set 基本等于Java的Set集合类型,无序不可重复集,常被用来去重. 基本用法 const s = new Set();//通过Set()构造函数创建 [2, 3, 5, 4, 5, 2, 2 ...
随机推荐
- LINUX内核分析第二周学习总结——操作系统是如何工作的
LINUX内核分析第二周学习总结——操作系统是如何工作的 张忻(原创作品转载请注明出处) <Linux内核分析>MOOC课程http://mooc.study.163.com/course ...
- FZU-SE-K 第一次累计得分排行榜
FZU-SE-K 第一次累计得分排行榜 包含第一.二.三次作业 排行 恭喜 248 文航 同学获得本期小黄衫 原图戳 这里 明细 1 - 第一次作业映射分数 2 - 第二次作业映射分数 3 - 第三次 ...
- Java编写准备数据源
1.装饰设计模式 package com.itheima.ds; import java.sql.Array; import java.sql.Blob; import java.sql.Callab ...
- CentOS75 安装Oracle18c
1. 参考地址 https://blog.csdn.net/u010257584/article/details/50902472https://www.cnblogs.com/kerrycode/a ...
- Alpha、伪Beta 发布后,严一格的个人感想与体会
伪Beta发布在4月15日下午2.30左右结束,严一格所在的“爆打”团队产品发布成功.下面是我的想法和体会~ 1.作为“爆打”团队中的一员,我对我们团队可以成功发布Alpha版本和伪Beta版本感到由 ...
- delphi xe 的替代者 Lazarus
Lazarus的设计目标是应用Free Pascal,所以所有凡是Free Pascal能运行的平台,Lazarus都可以运行.最新版本能运行于Linux,Win32和Mac OS.整个界面的外观和操 ...
- Delphi中如何实现模拟组合按键,如发送Ctrl+F的按键
利用 keybd_event函数可实现,如下面的代码用以实现在一个公共菜单中模拟Ctrl_F按钮以调用DBGridEH的查找对话框功能:这是在一个ActionList中的某一Action的OnExec ...
- 安装 oracle
先下载3个东西:链接忘记了,大家自己找一下 1 ORA+11+G+R2+server+64bit+for+windows.iso (oracle 安装文件) 2 PLSql 3 oracle6 ...
- 【题解】 [SCOI2010]连续攻击游戏 (二分图匹配)
原题目戳我 Solution: 方法很巧妙,我们把每个装备的属性 与 装备编号连起来 从1-10000跑二分图,如果出现断层,就退出,输出答案就好. memset清理bool快一点,int洛谷上超时了 ...
- A guess 解题报告
A guess 题意 选一个\([1,n](n\le 500)\)的整数,可以询问数是否属于区间\([l,r]\),多次询问一起回答,统计有多少种询问区间集合(无序)满足可以猜出这个数,对\(p(2^ ...