0x000 概述

Map也是一个新的数据结构,在js中其实也经常用到,比如下面的栗子,我们经常这么使用一个对象,与其说他是对象,其实他更像一个Map,但是比起真正的Map,这个还是有点弱了,

let color={"red":"#FF0000","green":"#00FF00","blue":"#0000FFF"
}
color['red']

0x001 初始化

new Map([iterable])

初始化一个Map有一个可选的参数,该参数必须是一个可迭代对象可迭代对象包括StringArrayArray-Like obejct(Arguments、NodeList)Typped ArraySetMap用户定义的可迭代对象

  • 数组

    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相关推荐

  1. 【ES6基础】Map与WeakMap

    开篇 ES6里除了增加了Set(集合)类型外(笔者在这篇文章<Set与WeakSet>有过介绍),今天的这篇文章笔者将继续介绍ES6引入的新类型--Map(映射类型)和其对应的弱类型Wea ...

  2. 【ES6基础】Object的新方法

    Object对象可谓是JS的重要核心内容,在你使用JS的过程中,你会发现自己的工作大部分都是在操作对象,ES6.ES7.ES8引入了不少新的方法,本篇文章笔者将带着大家一起熟悉下重点的新方法. 本篇文 ...

  3. android log 如何获取double类型后小数点的值_【ES6基础】Symbol介绍:独一无二的值...

    开篇 ES6之前我们都清楚JS有六种数据类型:Undefined.Null.布尔值(Boolean).字符串(String).数值(Number).对象(Object),今天笔者讲的Symbol类型是 ...

  4. 【ES6基础】Symbol介绍:独一无二的值

    开篇 ES6之前我们都清楚JS有六种数据类型:Undefined.Null.布尔值(Boolean).字符串(String).数值(Number).对象(Object),今天笔者讲的Symbol类型是 ...

  5. ES6基础4(数据结构)-学习笔记

    文章目录 ES6基础4(数据结构)-学习笔记 set map symbol ES6基础4(数据结构)-学习笔记 set //set 数据结构 类似数组 成员信息唯一性var s = new Set() ...

  6. ES6基础(var let const 箭头函数)-学习笔记

    文章目录 ES6基础(var let const 箭头函数)- 学习笔记 定义:var let const 箭头函数 数据结构 set map ES6基础(var let const 箭头函数)- 学 ...

  7. ES6基础:变量的解构赋值

    ES6基础系列之变量的解构赋值 ES6 允许按照一定模式,从数组和对象中提取值,对变量进行赋值,这被称为解构.这种方式的出现大大提高了代码的扩展性 前言 一.数组的解构赋值 二.对象的解构赋值 三.函 ...

  8. ES6基础5(Promise)-学习笔记

    文章目录 ES6基础5(Promise)-学习笔记 Promise 三个状态 状态转换 手写Promise源码 同步异步概念 jquery中 串行并行 async-await 微任务 宏任务 ES6基 ...

  9. ES6基础3(扩展)-学习笔记

    文章目录 ES6基础3(扩展)-学习笔记 字符串扩展 数值扩展 函数扩展 扩展运算符 ES6基础3(扩展)-学习笔记 字符串扩展 //扩展//字符串扩展charAt(); //返回指定索引位置的字符 ...

最新文章

  1. 第二百二十节,jQuery EasyUI,Slider(滑动条)组件
  2. [云炬创业基础笔记] 第四章测试12
  3. C#6.0语言规范(八) 语句
  4. 作者:周涛,男,博士,教授级高工,就职于北京启明星辰信息安全技术有限公司。...
  5. Windows文件服务器会话清理,在 Windows Server 上使用磁盘清理
  6. mysql中的字符是多长_mysql中的varchar到底能存多长的字符
  7. 【Hadoop】java.io.IOException: Failed on local exception: java.nio.channels.ClosedByInterruptException
  8. Hibrenate实现根据实体类自动创建表或添加字段
  9. 韩国成功研发变色龙软体机器人;曝新iPhone将推出摄影版“人像模式”;Android 12 Beta 4发布|极客头条...
  10. 一步一步部署GlusterFS
  11. python数据集_在Python中如何差分时间序列数据集
  12. 《JAVA常用算法手册》学习笔记(一)
  13. 三星 4521 linux 驱动下载,三星4521f驱动
  14. Inside-out追踪技术浅析
  15. MacBook怎样退出apple id
  16. VMware Horizon 8安装部署(八)访问测试,成功部署。
  17. 2018 Android 文字转语音(中文) TextToSpeech+科大讯飞语音引擎3.0
  18. 如何给图片加水印?分享怎么给图片加水印的方法
  19. 关于前端授权获取微信用户信息实践
  20. 拼多多是如何做用户增长的?

热门文章

  1. android openGl纹理的使用
  2. android关于控件中setTag(key,Object)的设置的相关问题
  3. 使用tf.keras搭建mnist手写数字识别网络
  4. 机器学习入门学习资源
  5. (二)git常用基本概念
  6. TensorFlow系列(一):TensorFlow是什么
  7. JVM学习笔记之-堆,年轻代与老年代,对象分配过程,Minor GC、Major GC、Full GC,堆内存大小与OOM,堆空间分代,内存分配策略,对象分配内存,小结堆空间,逃逸分析,常用调优工具
  8. SDNU 1300.转圈游戏(快速幂)
  9. 删除或修改本地Git保存的账号密码
  10. 钟国晨160809323 (作业9)