Map的用法二

Map实例的属性与操作方法#

Map结构的实例有以下属性和操作方法。

(1) size属性

size属性返回Map结构的成员总数。

const map = new Map();
map.set('foo', true);
map.set('bar', false);
map.size // 2

(2) Map.prototype.set(key,value)

set方法设置键名key对应的键值为value,然后返回整个Map结构。如果key已经有值,则键值会被更新,否则就会新生成该键。

const m = new Map();
m.set('edition', 6) // 键是字符串
m.set(262, 'standard') // 键是数值
m.set(undefined, 'nah') // 键是 undefined

set方法返回的是当前的Map对象,因此可以采用链式写法。

let map = new Map()
.set(1, 'a')
.set(2, 'b')
.set(3, 'c');

(3) Map.prototype.get(key)

get方法读取key对应的值,如果找不到key,返回undefined。

const m = new Map();
const hello = function() {console.log('hello');};
m.set(hello, 'Hello ES6!') // 键是函数
m.get(hello) // Hello ES6!

(4) Map.prototype.has(key)

has方法返回一个布尔值,表示某个键是否在当前Map对象之中。

const m = new Map();
m.set('edition', 6);
m.set(262, 'standard');
m.set(undefined, 'nah');
m.has('edition') // true
m.has('years') // false
m.has(262) // true
m.has(undefined) // true

(5) Map.prototype.delete(key)

delete方法删除某个键,返回true。如果删除失败,返回flase。

const m = new Map();
m.set(undefined, 'nah');
m.has(undefined) // true
m.delete(undefined)
m.has(undefined) // false

(6) Map.prototype.clear()

clear方法清除所有成员,没有返回值。

let map = new Map();
map.set('foo', true);
map.set('bar', false);
map.size // 2
map.clear()
map.size // 0

(参考ECMAScript 6)