ecmascript6中map/weakmap详解

来源: 电脑维修教程 阅读:     发表时间:

ecmascript6中map/weakmap详解的相关资料,需要的伴侣可以参考下 js的工具自己就是个键值布局,es6为什么还需要加map呢,它与普通的js工具有何区别? 一、map

ecmascript6中map/weakmap详解的相关资料,需要的伴侣可以参考下

js的工具自己就是个键值布局,es6为什么还需要加map呢,它与普通的js工具有何区别?

一、map

1. map构造器

先看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

这么对代码,看起来确实没有js工具简洁

但map的强大之处在于它的key可以是任意类型

// 工具作为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) // '宽高'

以上演示了用工具作为key的map。以下为图示

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') // 29

// 遍历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. 要领和属性

二、weakmap

与map的区别

不接受基本类型的值作为键名

没有keys、values、entries和size

有以下要领

以上所述就是本文的全部内容了,电脑维修技术,但愿各人能够喜欢。

以上是:解决ecmascript6中map/weakmap详解问题的详细资料教程