最近项目用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. 这是用过的"最差"树形插件

      这是用过的"最差"树形插件 !!! 或许大家听过一个bootstrap UI框架---ace皮肤.有兴趣的童鞋可以在线查看:https://www.iteblog.com/ac ...

  2. Leetcode: Convex Polygon

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

  3. 接口性能测试--JMeter

    1.JMeter Java Sampler介绍 setupTest做些初始化的工作,每个线程只执行一次 teardownTest做些清理工作,每个线程只执行一次 1.JMeter Java Sampl ...

  4. sqlite简单使用

    c创建表: create table 表名称(元素名称 类型,,,): 插入数据:insert into 表名称 values(null,,,) 修改数据   : update 表名 set 字段=’ ...

  5. Learning From Data 第一章总结

    之前上了台大的机器学习基石课程,里面用的教材是<Learning from data>,最近看了看觉得不错,打算深入看下去,内容上和台大的课程差不太多,但是有些点讲的更深入,想了解课程里面 ...

  6. 【转】sql各种查询技巧

    高级查询在数据库中用得是最频繁的,也是应用最广泛的. Ø 基本常用查询 --select select * from student;   --all 查询所有 select all sex from ...

  7. hadoop的自定义数据类型和与关系型数据库交互

    最近有一个需求就是在建模的时候,有少部分数据是postgres的,只能读取postgres里面的数据到hadoop里面进行建模测试,而不能导出数据到hdfs上去. 读取postgres里面的数据库有两 ...

  8. JS倒计时功能,给定时间返回规定格式倒计时时间

    重写了一下,增强了通用性,重写时发现月份和年份计算很复杂,因为月份天数不一样,年份又涉及平年闰年; 本人数学实在不佳无法写出算法,哪位大大日后写出来了分享给小弟一份,谢谢~. <!doctype ...

  9. JavaScript界面传值与前后台互调

    话说曾在校时,前端的第一门课程HTML静态网页设计,其老师,真是应了他的名字: 路遥知马力. 整个学期硬是全部在 Dreamwear 中进行拖拽控件来教学,未曾教授一句代码.成功忽悠了全体学生,课上一 ...

  10. 用shell脚本监控进程是否存在 不存在则启动的实例

    用shell脚本监控进程是否存在 不存在则启动的实例,先上代码干货: #!/bin/shps -fe|grep processString |grep -v grepif [ $? -ne 0 ]th ...