Map集合
Map是一种键值对的数据存储结构,比传统的数组更具优秀的查询结构与速度
Map声明方式
let myMap = new Map(); //我们可以声明一个空的Map集合,然后之后在向里面填充数据
//我们也可以在初始化数据的时候就让这个Map()集合自带数据,就是在里面写个二维数组
let myMap = new Map([['tim',12],['mikasa',21],['alice',40]]);
向Map集合中添加数据
myMap.set('tom',45);
获取Map集合中的数据
myMap.get('tom');
判断Map集合中是否有所指定的键(key)
myMap.has('tom'); //true
删除Map集合中的指定的键
myMap.delete('tom'); //true
Set集合
Set集合中的值不重复
Set集合声明
let s1 = new Set(); // 空Set
let s2 = new Set([1, 2, 3]); // 含1, 2, 3
通过add()向Set集合中添加数据
s2.add(4)
other i want to write
集合的遍历
我们可以利用for....of....直接遍历Map集合和Set集合,如
for(let x of mySet){console.log(x)}
for(let x of myMap){console.log(x)}
或者,Map和Set集合都有keys()
,values()
,entries()
方法,我们可以遍历这些数据
我们还可以利用forEach()方法进行遍历,如下
Set与Array类似,但Set没有索引,因此回调函数的前两个参数都是元素本身:
let s = new Set(['A', 'B', 'C']);
s.forEach(function (element, sameElement, set) {
console.log(element);
});
Map的回调函数参数依次为value、key和map本身:
let m = new Map([[1, 'x'], [2, 'y'], [3, 'z']]);
m.forEach(function (value, key, map) {
console.log(value);
});
如果对某些参数不感兴趣,由于JavaScript的函数调用不要求参数必须一致,因此可以忽略它们。例如,只需要获得Array的element:
var a = ['A', 'B', 'C'];
a.forEach(function (element) {
console.log(element);
});
。。。。etc