返回
从 ES6 看Map与Set的无穷潜力
前端
2023-11-09 09:26:26
从数组说起
实际上,数组也是一种集合,只是数组的索引是数值类型的,当想用非数值类型作为索引时,数组就无法满足需要了。Map集合可以保存多个键值对(key-value),Set集合可以保存多个元素。不过,对Map和Set一般不会逐一遍历其中的元素。Map通常用来存储需要频繁提取和存入的数据,而Set则更适合用来判断某个元素是否在集合中。
Map集合
Map集合和对象很像,二者都可以通过键来获取值,Map的键是任意类型,可以是字符串、数字或对象,不像数组的键只能是整数。因此,Map可以用来存储更复杂的数据,并且更灵活。
Map集合有如下方法:
set(key, value)
:向Map集合中添加一个键值对。get(key)
:从Map集合中获取指定键对应的值。has(key)
:检查Map集合中是否包含指定键。delete(key)
:从Map集合中删除指定键对应的键值对。clear()
:清空Map集合。
Set集合
Set集合与数组类似,它可以存储多个元素,但Set集合中的元素是唯一的。因此,Set集合可以用来判断某个元素是否在集合中。
Set集合有如下方法:
add(value)
:向Set集合中添加一个元素。has(value)
:检查Set集合中是否包含指定元素。delete(value)
:从Set集合中删除指定元素。clear()
:清空Set集合。
实例
我们先来看一个使用Map集合的例子,我们要创建一个学生成绩Map,键是学生的姓名,值是学生的成绩。
const students = new Map();
students.set('张三', 90);
students.set('李四', 80);
students.set('王五', 70);
console.log(students.get('张三')); // 90
console.log(students.has('李四')); // true
students.delete('王五');
console.log(students.size); // 2
然后,我们再来看一个使用Set集合的例子,我们要创建一个水果Set,其中包含各种各样的水果。
const fruits = new Set();
fruits.add('苹果');
fruits.add('香蕉');
fruits.add('橘子');
fruits.add('梨');
console.log(fruits.has('苹果')); // true
fruits.delete('香蕉');
console.log(fruits.size); // 3
总结
Map和Set集合是ES6中非常强大的数据结构,它们可以用来处理各种各样的问题。通过本篇文章的学习,希望大家能够掌握Map和Set集合的使用方法,并能够在实际开发中灵活运用它们。