最近项目用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. poj 3262 Protecting the Flowers

    http://poj.org/problem?id=3262 Protecting the Flowers Time Limit: 2000MS   Memory Limit: 65536K Tota ...

  2. OC的总结 ***希望对大家有帮助*** ---高小杰

    1.  NSLog           是Foundation提供的一个输出函数,它的功能非常强大,不仅可以输出字符串,还可以输出各种对象,到后面程序还会见到大量的使用NSLog()函数. 2.  N ...

  3. assets 加载资源文件

    引用:http://abc20899.iteye.com/blog/1096620 1.获取资源的输入流 资源文件 sample.txt 位于 $PROJECT_HOME/assets/ 目录下,可以 ...

  4. 响应式编程 Part.01 (Layout and MVVM)

    内部技术交流会PPT Keywords Less Requirejs Mvvm Bootstrap kendo 下载完整PPT

  5. 字符串操作 replace

    "hello".charAt(0); // "h" "hello, world".replace("hello", &q ...

  6. POJ 1459:Power Network(最大流)

    http://poj.org/problem?id=1459 题意:有np个发电站,nc个消费者,m条边,边有容量限制,发电站有产能上限,消费者有需求上限问最大流量. 思路:S和发电站相连,边权是产能 ...

  7. busybox的编译、使用及安装

    转载于:http://blog.sina.com.cn/wyw1976 busybox是什么? (1)busybox是Linux上的一个应用程序(application),即只有一个ELF文件头. ( ...

  8. python :添加的内容具有之前的功能用delegate绑定事件

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/ ...

  9. 关于webrtc视频会议的解决方案

    以我的经验来看视频会议分两种模式:网状模型,星型 1.网状模型 所谓的网状模型就是参加会议的人中每两个人建立一个点对点的连接. 比如:一个会议室有三个人A,B,C 基于网络模型就需要这样: 1.A和B ...

  10. response项目的各个写法

    这个是一个响应式的页面 原文可参照:http://localhost/response/seejs_index.html