JavaScript中的Map和Set

2021-12-30  本文已影响0人  iMikasa_

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

上一篇 下一篇

猜你喜欢

热点阅读