在 JavaScript 中,一个常见的需求是维护一些数据集合或键值对。ES6 引入了 Set 和 Map 两种数据结构来满足这些需求,它们比传统的 Array 和 Object 结构更加优秀。
Set
Set 是一种无序、唯一的数据集合,我们可以用它来去重或者查找某个元素是否存在,它的 API 如下:
创建 Set
const set = new Set([1, 2, 3]); // 通过数组创建 const set2 = new Set(); // 空的 Set
添加元素
set.add(4); // 添加一个元素 set.add(5).add(6); // 链式添加多个元素
删除元素
set.delete(2); // 删除一个元素 set.clear(); // 清空所有元素
查找元素
set.has(3); // true set.has(7); // false
获取元素数量
set.size; // 3
遍历元素
set.forEach(item => { console.log(item); }); for (const item of set) { console.log(item); }
Set 拥有很多数组没有的特性,例如去重和快速查找某个元素,同时它还具有链式添加元素、清空所有元素等操作。
Map
Map 是一种键值对结构,其中每个键都唯一且可以是任意数据类型,API 如下:
创建 Map
const map = new Map([["key1", "value1"], ["key2", "value2"], ["key3", "value3"]]); const map2 = new Map(); // 空的 Map
添加键值对
map.set("key4", "value4"); // 添加一个键值对 map.set("key5", "value5").set("key6", "value6"); // 链式添加多个键值对
删除键值对
map.delete("key2"); // 删除一个键值对 map.clear(); // 清空所有键值对
查找键值对
map.has("key3"); // true map.has("key7"); // false
获取键值对数量
map.size; // 3
遍历键值对
map.forEach((value, key) => { console.log(key, value); }); for (const [key, value] of map) { console.log(key, value); }
Map 是一个非常实用的数据结构,拥有很强的键值对组合能力,同时它也具有链式添加键值对、清空所有键值对等操作。
小结
ES6 引入的 Set 和 Map 数据结构提供了一种更加优秀的数据组织方式,它们可以替代传统的 Array 和 Object 结构来解决相关的问题。在实际开发中,我们可以根据需求灵活使用它们,从而提升代码的可读性、可维护性和性能。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67b82e14306f20b3a65bd0ad