在 JavaScript 中,经常需要处理复杂的数据结构。以前,我们通常使用对象或数组来处理这些数据,但是这些数据结构可能会导致一些问题。为了解决这些问题,ES6 引入了两个新的数据结构:Map 和 Set。
Map
Map 是一种键值对的集合,和 JavaScript 中的对象非常相似。但是,和对象不同的是,Map 的键可以是任意类型的值,而不仅仅是字符串或数字。此外,Map 还提供了一些新的方法来管理集合中的值。
创建 Map 对象
我们可以像创建对象一样创建 Map 对象。下面是一个示例:
const map = new Map();
我们可以向 Map 中添加键值对。可以使用 set
方法来添加一个键值对,也可以在创建时传入键值对。下面是一个示例:
const map = new Map([ ['name', 'Tom'], ['age', 20] ]); map.set('gender', 'male');
获取 Map 中的值
获取 Map 中的值可以使用 get
方法。下面是一个示例:
console.log(map.get('name')); // Tom
删除 Map 中的值
删除 Map 中的值可以使用 delete
方法。下面是一个示例:
map.delete('gender');
遍历 Map
遍历 Map 可以使用 for...of
循环或者 forEach
方法。下面是一个示例:
for (const [key, value] of map) { console.log(`${key}: ${value}`); } map.forEach((value, key) => console.log(`${key}: ${value}`));
Set
Set 是一种集合,可以存储任意类型的值。和数组不同的是,Set 中的值是唯一的,不会出现重复的值。Set 也提供了一些新的方法来管理集合中的值。
创建 Set 对象
我们可以像创建对象一样创建 Set 对象。下面是一个示例:
const set = new Set();
我们可以向 Set 中添加值。可以使用 add
方法来添加一个值,也可以在创建时传入值。下面是一个示例:
const set = new Set(['Tom', 'Jerry']); set.add('Alice');
判断 Set 中是否存在某个值
判断 Set 中是否存在某个值可以使用 has
方法。下面是一个示例:
console.log(set.has('Tom')); // true
删除 Set 中的值
删除 Set 中的值可以使用 delete
方法。下面是一个示例:
set.delete('Alice');
遍历 Set
遍历 Set 可以使用 for...of
循环或者 forEach
方法。下面是一个示例:
for (const value of set) { console.log(value); } set.forEach(value => console.log(value));
总结
使用 ES6 的 Map 和 Set 可以更方便地管理复杂的数据结构,并且提高代码的可读性和性能。在实际开发中,建议多使用这两种数据结构,并结合相关的 API 及方法来操作集合中的值。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/648e9f0848841e9894cfff16