含义
Map 数据结构类似于对象,也是键值对的集合,但是键的范围不限于字符串,各种类型的值(包括对象)都可以当做键。 Map 结构提供了“值-值”的对应,是更完善的 Hash 结构实现。Map 可以作为构造函数。
新建 Map:new Map()
let map = new Map()
添加成员:Map.set()
let key = 'age', value = '10'
map.set(key,value)
读取成员:Map.get()
map.get('age') // '18'
判断成员是否存在:Map.has()
map.has('age') // true
map.has('name') // false
删除成员:Map.delete()
map.delete('age')
map.has('age) // false
清空成员:Map.clear()
map.clear()
map.size // 0
Map 的遍历和过滤
// Map 转为 数组
const map = new Map([
[1, 'one'],
[2, 'two'],
[3, 'three']
]);
[...map.keys()]
// [1,2,3]
[...map.values()]
// ['one', 'two', 'three']
[...map.entries()]
// [[1,'one'], [2, 'two'], [3, 'three']]
[...map]
// [[1,'one'], [2, 'two'], [3, 'three']]
// Map 实现遍历和过滤
const map0 = new Map()
.set(1, 'a')
.set(2, 'b')
.set(3, 'c');
const map1 = new Map(
[...map0].filter([k, v] => k < 3)
);
// 产生 Map 结构 {1 => 'a', 2 => 'b'}
const map2 = new Map(
[...map0].map(([k, v]) => [k * 2, '_' + v])
)
// 产生 Map 结构 {2 => '_a', 4 => '_b', 6 => '_c'}