最近项目用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') // 29 // 对象作为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构造器还支持传数组方式
1 var map = new Map([["name", "John"], ["age", "29"]]) 2 3 4 5 // 遍历key 6 7 for (var key of map.keys()) { 8 9 console.log(key) // name, age 10 11 }
2. 迭代
和Set一样用for of来迭代Map,键调用map.keys(),值调用map.values(),键值实体调用map.entries()
1 var map = new Map() 2 3 // set 4 5 map.set('name', 'John') 6 7 map.set('age', 29) 8 9 // get 10 11 map.get('name') // 'John' 12 13 map.get('age') // 29 14 15 16 17 // 遍历key 18 19 for (var key of map.keys()) { 20 21 console.log(key) 22 23 } 24 25 26 27 // 遍历value 28 29 for (var val of map.values()) { 30 31 console.log(val) 32 33 } 34 35 36 37 // 遍历实体 38 39 for (var arr of map.entries()) { 40 41 console.log('key: ' + arr[0] + ', value: ' + arr[1]) 42 43 } 44 45 46 47 // 遍历实体的简写 48 49 for (var [key, val] of map.entries()) { 50 51 console.log('key: ' + key + ', value: ' + val) 52 53 }
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