最近项目用ES6来写,许多语法都要逐步熟悉呀,今天收藏下Map用法

1、Map构造器

// 字符串作为key, 和JS对象类似

var map = new Map()

// set

map.set('name', 'John')

map.set('age', 29)

// get

map.get('name') // John

map.get('age')  //

// 对象作为key演示

var xy = {x: 10, y: 20}   // 坐标

var wh = {w: 100, h: 200} // 宽高

var map = new Map()

// set

map.set(xy, '坐标')

map.set(wh, '宽高')

// get

map.get(xy) // '坐标'

map.get(wh) // '宽高'

Map构造器还支持传数组方式

 var map = new Map([["name", "John"], ["age", "29"]])

 // 遍历key

 for (var key of map.keys()) {

     console.log(key) // name, age

 }

2. 迭代

和Set一样用for of来迭代Map,键调用map.keys(),值调用map.values(),键值实体调用map.entries()

 var map = new Map()

 // set

 map.set('name', 'John')

 map.set('age', 29)

 // get

 map.get('name') // 'John'

 map.get('age')  //

 // 遍历key

 for (var key of map.keys()) {

     console.log(key)

 }

 // 遍历value

 for (var val of map.values()) {

     console.log(val)

 }

 // 遍历实体

 for (var arr of map.entries()) {

     console.log('key: ' + arr[0] + ', value: ' + arr[1])

 }

 // 遍历实体的简写

 for (var [key, val] of map.entries()) {

     console.log('key: ' + key + ', value: ' + val)

 }

3. 方法和属性

map.clear

map.delete

map.entries

map.forEach

map.get

map.has

map.keys

map.set

map.size

map.values

原文:http://www.cnblogs.com/snandy/p/4519768.html

ES6 Map/WeakMap的更多相关文章

  1. ES6通过WeakMap解决内存泄漏问题

    一.Map 1.定义 Map对象保存键值对,类似于数据结构字典:与传统上的对象只能用字符串当键不同,Map对象可以使用任意值当键. 2.语法 new Map([iterable]) 属性 size:返 ...

  2. es6 & map & set

    es6 & map & set Map & WeakMap https://developer.mozilla.org/en-US/docs/Web/JavaScript/Re ...

  3. ES6 & Map & hashMap

    ES6 & Map & hashMap 01 two-sum https://leetcode.com/submissions/detail/141732589/ hashMap ht ...

  4. js es6 map 与 原生对象区别

    区别 object和Map存储的都是键值对组合.但是: object的键的类型是 字符串: map的键的类型是 可以是任意类型: 另外注意,object获取键值使用Object.keys(返回数组): ...

  5. ES6 map与filter

    ES6 map与filter 1.map let arr1 = [1,2,3]; let arr2 = arr1.map((value,key,arr) => { console.log(val ...

  6. ES6 Map to Array

    ES6 Map to Array function differentSymbolsNaive(str) { // write code here. const map = new Map(); co ...

  7. ES6 Map All In One

    ES6 Map All In One Map 字典/地图 Set 集合 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Referenc ...

  8. ES6 Map vs ES5 Object

    ES6 Map vs ES5 Object Map vs Object https://developer.mozilla.org/en-US/docs/Web/JavaScript/Referenc ...

  9. es6 Map,Set 和 WeakMap,WeakSet

    这些是新加的集合类型,提供了更加方便的获取属性值的方法,不用像以前一样用hasOwnProperty来检查某个属性是属于原型链上的呢还是当前对象的.同时,在进行属性值添加与获取时有专门的get,set ...

随机推荐

  1. 使用IIS发布WCF服务

    上一篇是Windows服务为宿主的WCF服务,现在用IIS为宿主发布WCF服务. 第一步:肯定是新建一个WCF服务啦[是WCF服务应用程序],然后在解决方案上再次添加一个新项目[我们选择WCF服务库, ...

  2. C# 文件压缩加解密

    1.这种方式也可以做到对文件的加密压缩,解密解压缩,只是在压缩和解压缩时会出现压缩窗口 1.1加密压缩 strzipPath:压缩包路径 strtxtPath:待压缩的文件路径 password:加密 ...

  3. Java被忽略的基本知识(二)

    14.字符串的内容不可改变,不能修改某个下标的字符值.字符串之间的"+"连接是通过"断开--再连接",修改变量的栈中的引用地址指向. 15.对于数组.类(类的属 ...

  4. JS中的prototype

    JS中的phototype是JS中比较难理解的一个部分 本文基于下面几个知识点: 1 原型法设计模式 在.Net中可以使用clone()来实现原型法 原型法的主要思想是,现在有1个类A,我想要创建一个 ...

  5. Mountains(CVTE面试题)解题报告

    题目大意: 用一个数组代表群山的高度.高度大的地方代表山峰,小的地方代表山谷.山谷可以容水.假设有一天下了大雨,求群山中总共可以容纳多少水? 如图所示情况,a代表该数组,总共可以容纳5个水. 解题思路 ...

  6. [Effective JavaScript 笔记]第45条:使用hasOwnProperty方法以避免原型污染

    之前的43条,44条讨论了属性的枚举,但都没有彻底地解决属性查找中原型污染的问题.看下面关于字典的一些操作 'zhangsan' in dict; dict.zhangsan; dict.zhangs ...

  7. 并发框架Disruptor浅析

    1.引言 Disruptor是一个开源的Java框架,它被设计用于在生产者—消费者(producer-consumer problem,简称PCP)问题上获得尽量高的吞吐量(TPS)和尽量低的延迟.D ...

  8. Linux部署Apache ActiveMQ 5.14.1

    简单记一下,下载地址 http://activemq.apache.org/download.html 一.安装JDK7以上,官方说明:http://activemq.apache.org/versi ...

  9. WebStorm 11、PhpStorm 10免费激活(不需要注册码)

    之前分享的WebStorm9.WebStrom10.PhpStorm9注册码生成网站已经被站长关了,比较遗憾!http://my.oschina.net/ximidao/blog/486353 现在官 ...

  10. ffmpeg centos6.5上安装(测试 amr 转换为 mp3)

    1. 下载相关源码包 wget http://www.tortall.net/projects/yasm/releases/yasm-1.2.0.tar.gz wget http://sourcefo ...