ES6 -- Map 和 Set
Map
本文是阮一峰的ES6入门的过滤
1. 简介:
-
类似于对象
-
键不限于字符串,各种类型的值(包括对象)都可以当作键
-
Map具有极快的查找速度。 -
同一个
key对应一个value,后面的覆盖前面的。var m = new Map();
m.set('Adam', 67);
m.set('Adam', 88);
m.get('Adam'); // 88 -
Map 的键实际上是跟内存地址绑定的
const map = new Map();
const k1 = ['a'];
const k2 = ['a'];map
.set(k1, 111)
.set(k2, 222);map.get(k1) // 111
map.get(k2) // 222
2. 语法:
-
size 属性: 类似于 length
-
set(key, value):设置 key 和 value
-
get(key):get方法读取key对应的键值
-
has(key):has方法返回一个布尔值
-
delete(key):delete方法删除某个键,返回true
-
clear():clear方法清除所有成员
const map = new Map();
map.set('foo', true);
map.set('bar', false);map.size // 2
map.get('foo') // true
map.has('foo') // true
map.delete(undefined)
map.clear()
3. 实例:
-
根据同学的名字查找对应的成绩
var m = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]);
m.get('Michael'); // 95
4. 遍历:
-
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']]
Set
1. 简介:
-
类似于数组,特点:成员的值是 唯一的
-
加入对象时总是不相等
let set = new Set();
set.add({});
set.size // 1set.add({});
set.size // 2
2. 语法:
add(value):添加某个值,返回 Set 结构本身。delete(value):删除某个值,返回一个布尔值,表示删除是否成功。has(value):返回一个布尔值,表示该值是否为Set的成员。clear():清除所有成员,没有返回值。size:返回成员数
3. 实现函数方法:
-
快速数组去重
[...new Set(array)]
4. 遍历
keys():返回键名的遍历器values():返回键值的遍历器entries():返回键值对的遍历器forEach():使用回调函数遍历每个成员

浙公网安备 33010602011771号