在 ECMAScript 2018 中,Set 和 Map 是两个非常有用的数据结构,它们能够帮助我们更好地组织和管理数据。在本文中,我们将详细讨论 Set 和 Map 的使用方法,并提供一些示例代码,以便大家更好地理解。
Set
Set 是一种无序且唯一的集合。它类似于数组,但是不允许有重复的元素。Set 的主要用途是去重和判断元素是否存在。
创建 Set
可以使用 Set 构造函数来创建一个新的 Set 对象,也可以使用 Set.from() 方法从一个可迭代对象创建一个新的 Set 对象。
const set1 = new Set(); // 创建一个空的 Set 对象 const set2 = new Set([1, 2, 3]); // 从数组创建一个新的 Set 对象 const set3 = new Set('hello'); // 从字符串创建一个新的 Set 对象
添加和删除元素
可以使用 add() 方法向 Set 中添加元素,使用 delete() 方法从 Set 中删除元素,使用 clear() 方法清空 Set 中的所有元素。
const set = new Set(); set.add(1); set.add(2); set.add(3); set.delete(2); set.clear();
遍历 Set
可以使用 for...of 循环遍历 Set 中的所有元素,也可以使用 forEach() 方法遍历 Set 中的所有元素。
const set = new Set([1, 2, 3]); for (const item of set) { console.log(item); } set.forEach((item) => { console.log(item); });
判断元素是否存在
可以使用 has() 方法判断 Set 中是否存在某个元素。
const set = new Set([1, 2, 3]); console.log(set.has(2)); // true console.log(set.has(4)); // false
Map
Map 是一种键值对集合。它类似于对象,但是键可以是任意类型,而不仅仅是字符串。Map 的主要用途是存储和管理相关联的数据。
创建 Map
可以使用 Map 构造函数来创建一个新的 Map 对象,也可以使用 Map.from() 方法从一个可迭代对象创建一个新的 Map 对象。
const map1 = new Map(); // 创建一个空的 Map 对象 const map2 = new Map([[1, 'one'], [2, 'two'], [3, 'three']]); // 从数组创建一个新的 Map 对象 const map3 = new Map({ a: 1, b: 2, c: 3 }); // 从对象创建一个新的 Map 对象
添加和删除元素
可以使用 set() 方法向 Map 中添加元素,使用 delete() 方法从 Map 中删除元素,使用 clear() 方法清空 Map 中的所有元素。
const map = new Map(); map.set('a', 1); map.set('b', 2); map.set('c', 3); map.delete('b'); map.clear();
遍历 Map
可以使用 for...of 循环遍历 Map 中的所有元素,也可以使用 forEach() 方法遍历 Map 中的所有元素。
-- -------------------- ---- ------- ----- --- - --- ----- ----- --- ----- --- ----- --- --- --- ------ ----- ------ -- ---- - ---------------- ------- - ------------------- ---- -- - ---------------- ------- ---
获取 Map 中的键和值
可以使用 keys() 方法获取 Map 中所有的键,使用 values() 方法获取 Map 中所有的值,使用 entries() 方法获取 Map 中所有的键值对。
const map = new Map([ ['a', 1], ['b', 2], ['c', 3], ]); console.log([...map.keys()]); // ['a', 'b', 'c'] console.log([...map.values()]); // [1, 2, 3] console.log([...map.entries()]); // [['a', 1], ['b', 2], ['c', 3]]
总结
在 ECMAScript 2018 中,Set 和 Map 是非常有用的数据结构。它们可以帮助我们更好地组织和管理数据,提高代码的可读性和可维护性。我们需要根据实际需求选择合适的数据结构,并学习它们的使用方法,以便更好地应用到实际开发中。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/651012c795b1f8cacd8b654b