es6基础0x012:Map
0x000 概述
Map
也是一个新的数据结构,在js
中其实也经常用到,比如下面的栗子,我们经常这么使用一个对象,与其说他是对象,其实他更像一个Map
,但是比起真正的Map
,这个还是有点弱了,
let color={"red":"#FF0000","green":"#00FF00","blue":"#0000FFF"
}
color['red']
0x001 初始化
new Map([iterable])
初始化一个Map
有一个可选的参数,该参数必须是一个可迭代对象
,可迭代对象
包括String
、Array
、Array-Like obejct(Arguments、NodeList)
、Typped Array
、Set
、Map
和用户定义的可迭代对象
。
数组
new Map([[1,2],[3,4]]) // Map(2) {1 => 2, 3 => 4}
0x002 添加
和对象作为Map
相比,Map
的键可以是任意值,甚至可以是NaN
var myMap = new Map();var keyObj = {},keyFunc = function () {},keyString = "a string";// 添加键
myMap.set(keyString, "和键'a string'关联的值");
myMap.set(keyObj, "和键keyObj关联的值");
myMap.set(keyFunc, "和键keyFunc关联的值");
0x003 获取Map
的大小
myMap.size // 3
0x004 获取
myMap.get(keyString) // "和键'a string'关联的值"
myMap.get(keyObj) // "和键keyObj关联的值"
myMap.get(keyFunc) // "和键keyFunc关联的值"
0x005 是否包含
myMap.has(keyString) // true
myMap.has('1') // false
0x006 删除
myMap.delete(keyString) // true
myMap.delete('') // false
0x007 遍历
myMap.forEach(m=>{console.log(m)})
// 和键'a string'关联的值
// 和键keyObj关联的值
// 和键keyFunc关联的值
0x008 获取迭代器
let entries=myMap.entries()
entries.next().value // 和键'a string'关联的值
entries.next().value// 和键keyObj关联的值
entries.next().value// 和键keyFunc关联的值
0x009 获取 key 迭代器
let keys=myMap.keys()
keys.next().value // "a string"
keys.next().value// function () {}
keys.next().value// {}
0x010 获取 value 迭代器
let values=myMap.values()
values.next().value // 和键'a string'关联的值
values.next().value// 和键keyObj关联的值
values.next().value// 和键keyFunc关联的值
0x011 清除
mySet.clear()
es6基础0x012:Map相关推荐
- 【ES6基础】Map与WeakMap
开篇 ES6里除了增加了Set(集合)类型外(笔者在这篇文章<Set与WeakSet>有过介绍),今天的这篇文章笔者将继续介绍ES6引入的新类型--Map(映射类型)和其对应的弱类型Wea ...
- 【ES6基础】Object的新方法
Object对象可谓是JS的重要核心内容,在你使用JS的过程中,你会发现自己的工作大部分都是在操作对象,ES6.ES7.ES8引入了不少新的方法,本篇文章笔者将带着大家一起熟悉下重点的新方法. 本篇文 ...
- android log 如何获取double类型后小数点的值_【ES6基础】Symbol介绍:独一无二的值...
开篇 ES6之前我们都清楚JS有六种数据类型:Undefined.Null.布尔值(Boolean).字符串(String).数值(Number).对象(Object),今天笔者讲的Symbol类型是 ...
- 【ES6基础】Symbol介绍:独一无二的值
开篇 ES6之前我们都清楚JS有六种数据类型:Undefined.Null.布尔值(Boolean).字符串(String).数值(Number).对象(Object),今天笔者讲的Symbol类型是 ...
- ES6基础4(数据结构)-学习笔记
文章目录 ES6基础4(数据结构)-学习笔记 set map symbol ES6基础4(数据结构)-学习笔记 set //set 数据结构 类似数组 成员信息唯一性var s = new Set() ...
- ES6基础(var let const 箭头函数)-学习笔记
文章目录 ES6基础(var let const 箭头函数)- 学习笔记 定义:var let const 箭头函数 数据结构 set map ES6基础(var let const 箭头函数)- 学 ...
- ES6基础:变量的解构赋值
ES6基础系列之变量的解构赋值 ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构.这种方式的出现大大提高了代码的扩展性 前言 一.数组的解构赋值 二.对象的解构赋值 三.函 ...
- ES6基础5(Promise)-学习笔记
文章目录 ES6基础5(Promise)-学习笔记 Promise 三个状态 状态转换 手写Promise源码 同步异步概念 jquery中 串行并行 async-await 微任务 宏任务 ES6基 ...
- ES6基础3(扩展)-学习笔记
文章目录 ES6基础3(扩展)-学习笔记 字符串扩展 数值扩展 函数扩展 扩展运算符 ES6基础3(扩展)-学习笔记 字符串扩展 //扩展//字符串扩展charAt(); //返回指定索引位置的字符 ...
最新文章
- 第二百二十节,jQuery EasyUI,Slider(滑动条)组件
- [云炬创业基础笔记] 第四章测试12
- C#6.0语言规范(八) 语句
- 作者:周涛,男,博士,教授级高工,就职于北京启明星辰信息安全技术有限公司。...
- Windows文件服务器会话清理,在 Windows Server 上使用磁盘清理
- mysql中的字符是多长_mysql中的varchar到底能存多长的字符
- 【Hadoop】java.io.IOException: Failed on local exception: java.nio.channels.ClosedByInterruptException
- Hibrenate实现根据实体类自动创建表或添加字段
- 韩国成功研发变色龙软体机器人;曝新iPhone将推出摄影版“人像模式”;Android 12 Beta 4发布|极客头条...
- 一步一步部署GlusterFS
- python数据集_在Python中如何差分时间序列数据集
- 《JAVA常用算法手册》学习笔记(一)
- 三星 4521 linux 驱动下载,三星4521f驱动
- Inside-out追踪技术浅析
- MacBook怎样退出apple id
- VMware Horizon 8安装部署(八)访问测试,成功部署。
- 2018 Android 文字转语音(中文) TextToSpeech+科大讯飞语音引擎3.0
- 如何给图片加水印?分享怎么给图片加水印的方法
- 关于前端授权获取微信用户信息实践
- 拼多多是如何做用户增长的?
热门文章
- android openGl纹理的使用
- android关于控件中setTag(key,Object)的设置的相关问题
- 使用tf.keras搭建mnist手写数字识别网络
- 机器学习入门学习资源
- (二)git常用基本概念
- TensorFlow系列(一):TensorFlow是什么
- JVM学习笔记之-堆,年轻代与老年代,对象分配过程,Minor GC、Major GC、Full GC,堆内存大小与OOM,堆空间分代,内存分配策略,对象分配内存,小结堆空间,逃逸分析,常用调优工具
- SDNU 1300.转圈游戏(快速幂)
- 删除或修改本地Git保存的账号密码
- 钟国晨160809323 (作业9)