对象的拓展:ES6的新数据类型Map和Set,解决键值JS中对象键只能为字符串的不合理性
发布日期:2021-06-29 11:42:51 浏览次数:2 分类:技术文章

本文共 769 字,大约阅读时间需要 2 分钟。

JavaScript的对象有个小问题,就是键必须是字符串。但实际上Number或者其他数据类型作为键也是非常合理的。

为了解决这个问题,最新的ES6规范引入了新的数据类型Map。

Map

初始化Map需要一个二维数组,或者直接初始化一个Map

var m = new Map([['Michael', 95], ['Bob', 75], ['Tracy', 85]]);var m = new Map(); // 空Map

Map具有以下方法:

m.set('Adam', 67); // 添加新的key-valuem.set('Bob', 59);m.has('Adam'); // 是否存在key 'Adam': truem.get('Adam'); // 67m.delete('Adam'); // 删除key 'Adam'm.get('Adam'); // undefined

Set

SetMap类似,也是一组key的集合,但不存储value。由于key不能重复,所以,在Set中,没有重复的key,重复元素在Set中自动被过滤。

语法如下:

var s1 = new Set(); // 空Setvar s2 = new Set([1, 2, 3]); // 或者输入一个Array,结果为含1, 2, 3

Set具有的方法:添加和删除

var s = new Set([1, 2, 3, 3, '3']);  // Set {1, 2, 3, "3"}s.add(4);  // Set {1, 2, 3, "3",4}  向Set中添加元素s.add(4);  // Set {1, 2, 3, "3"}  重复添加没效果s.delete(3);  // Set {1, 2, "3", 4}  删除Set中的元素

 

转载地址:https://blog.csdn.net/zz2230633069/article/details/108221999 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:Iterable类型的遍历
下一篇:循环,4种方式

发表评论

最新留言

感谢大佬
[***.8.128.20]2024年04月22日 08时20分10秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章