1.map的使用
a.
const map = new Map([[‘name‘,‘ouycx‘],[‘age‘, 20]]);
b.
const map = new Map(); map.set(‘name‘, ‘ouycx‘); map.set(‘age‘, 20);
1)set添加值
map.set(‘age‘, 20);

注意: 如果添加的值跟已添加的key值一样,会覆盖:
const map = new Map(); map.set(‘name‘, ‘ouycx‘); map.set(‘age‘, 20); map.set(‘name‘,‘test‘);

2) get获取值
map.get(‘age‘)

3) delete删除某个key
map.delete(‘age‘)
map.delete(‘age‘) 如果删除成功返回的是true,剩下键值为name的属性值,如图:

4) has判断某个属性是否在map里面,存在返回true,不存在返回false
map.has(‘name‘)

5) clear 清除所有的属性值
map.clear();

我常用的是for ... of , forEach方法:
1) for .. of
const map = new Map(); map.set(‘name‘, ‘ouycx‘); map.set(‘age‘, 20); for(let [key, val] of map){ console.log("key:" + key + " value:" + val); }
2) forEach
const map = new Map(); map.set(‘name‘, ‘ouycx‘); map.set(‘age‘, 20); map.forEach(function(val, key, map){ console.log("key:" + key + " value:" + val); });
结果都是一样的

2.set 的使用
a.
var set = new Set([2,3,4,5,5,6]);
b.
var set = new Set(); set.add(2); set.add(3); set.add(4); set.add(5); set.add(5); set.add(6);
结果都一样:

1)add 添加属性
var set = new Set(); set.add(2); set.add(3); set.add(4); set.add(5); set.add(5); set.add(6);
注意,添加相同的值会覆盖

2)delete 删除属性
set.delete(3);

3) clear清除属性
set.clear();

1) for ... of
var set = new Set(); set.add(2); set.add(3); set.add(4); set.add(5); set.add(5); set.add(6); console.log(set); for (var s of set){ console.log(s); }

2) forEach
var set = new Set(); set.add(2); set.add(3); set.add(4); set.add(5); set.add(5); set.add(6); console.log(set); set.forEach(function(v, k){ console.log("值为:" + v + " 索引为:" + k); })

注意: value值 跟索引key 的值是一样的。
3)可以用扩展运算符遍历
var set = new Set(); set.add(2); set.add(3); set.add(4); set.add(5); set.add(5); set.add(6); console.log(...set);

原文:https://www.cnblogs.com/ouycx/p/9418410.html