最近项目用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. mySql 注入攻击

    注入攻击 1.原理: a.只要是带有参数的动态网页且此网页访问了数据库,那么就有可能存在SQL注入; b.字符串拼接和没有判断用户输入是否合法------>导致用户可以玩填字游戏-----> ...

  2. Leetcode: Convex Polygon

    Given a list of points that form a polygon when joined sequentially, find if this polygon is convex ...

  3. zTree Jquery eCharts

    (function(){ var setting = { view:{ dblClickExpand:false, expandSpeed:300 }, data: { simpleData: { e ...

  4. Windows Phone 十六、HttpClient

    HttpClient 对象也可以实现网络请求 相对于 HttpWebRequest 对象来说,HttpClient 操作更简单,功能更强大 HttpClient 提供一系列比较简单的API来实现基本的 ...

  5. Javascript-9-1-OOP-5-链式调用

    <html lang="en"> <head> </head> <body> <div class="" ...

  6. PHP的启动与终止

    1.2 PHP的启动与终止 PHP程序的启动可以看作有两个概念上的启动,终止也有两个概念上的终止. 其中一个是PHP作为Apache(拿它举例,板砖勿扔)的一个模块的启动与终止, 这次启动php会初始 ...

  7. Apache 打开网页的时候等待时间过长的解决方案

    服务器搭建后经常在打开页面的时候,等待很长时间,有时候,都超过一分钟了,然后才能打开,但是打开后,速度又很快,休息一会再点击,又会很慢了,遇到了这种问题很头疼,由于不是专业做服务器配置的,所以刚开始没 ...

  8. 用canvas画环形圆形图片

    效果如图自动绘制不停歇 代码如下 var canvas = document.getElementById('myCanvas'),width = canvas.width,height = canv ...

  9. oracle的IMU和ora-01555

    IMU: 01555: 按照上图找啊找,已经提交事物的undo块找不到了,就产生01555错误,解决这样问题:1. 确保undo表空间数据的保留时间至少大于最长sql语句的时间 2. 增大undo表空 ...

  10. IIS的配置

    一.首先是安装IIS.打开控制面板,找到“程序与功能”,点进去 二.点击左侧“打开或关闭Windows功能” 三.找到“Internet 信息服务”,按照下图打勾即可 等待安装完成 四.安装完成后,再 ...