JavaScript中的Map和Set

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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容