ES6 新增了 Set 和 Map 这两种数据结构,它们为 JavaScript 提供了更强大和灵活的数据处理能力。下面详细介绍一下 Set 和 Map 的特性和用法:
Set
Set 是一种类似于数组的数据结构,但是成员的值都是唯一的,没有重复的值。
特性:
- Set 中的元素是唯一的,不会出现重复的值。
- Set 可以接收一个可迭代对象作为参数,用于初始化 Set。
- Set 中的元素是有序的,插入顺序决定了元素的顺序。
常用方法:
add(value)
: 向 Set 中添加一个新的元素。delete(value)
: 删除 Set 中的指定元素。has(value)
: 判断 Set 中是否包含指定元素。clear()
: 清空 Set 中的所有元素。size
: 返回 Set 中元素的个数。
示例:
let set = new Set([1, 2, 3, 4, 5]);set.add(6);
set.delete(3);
console.log(set.has(2)); // 输出: true
console.log(set.size); // 输出: 5set.forEach(item => console.log(item)); // 输出: 1 2 4 5 6
Map
Map 是一种键值对的集合,其中每个键都是唯一的,而值可以重复。
特性:
- Map 中的键是唯一的,值可以重复。
- Map 可以接收一个可迭代对象作为参数,用于初始化 Map。
- Map 中的元素是有序的,插入顺序决定了元素的顺序。
常用方法:
set(key, value)
: 向 Map 中设置指定键的值。get(key)
: 获取 Map 中指定键对应的值。delete(key)
: 删除 Map 中指定键的值。has(key)
: 判断 Map 中是否包含指定键。clear()
: 清空 Map 中的所有键值对。size
: 返回 Map 中键值对的个数。
示例:
let map = new Map([['name', 'Alice'],['age', 30],['city', 'New York']
]);map.set('gender', 'female');
map.delete('age');
console.log(map.has('city')); // 输出: true
console.log(map.size); // 输出: 3map.forEach((value, key) => console.log(`${key}: ${value}`));
// 输出:
// name: Alice
// city: New York
// gender: female
总结
Set 和 Map 提供了一种更加灵活和高效的数据结构,能够满足不同场景下的数据处理需求。它们可以存储不重复的值,并且提供了丰富的方法来操作集合中的元素。在实际开发中,可以根据具体的需求选择使用 Set 或 Map 来处理数据。