介绍
在 ES6 中,JavaScript 引入了 Map 和 Set 两个新的数据结构,它们分别用于存储键值对和唯一值。在 ES12 中,这两个数据结构又得到了新的功能增强,本文将带你深入了解这些新的功能,并介绍如何在前端开发中使用它们。
Map 的新功能
1. Map.prototype.upsert()
在 ES12 中,Map
类新增了一个 upsert()
方法,可以用于插入或更新一个键值对。如果键已经存在,则更新其对应的值;如果键不存在,则插入一个新的键值对。
示例代码:
// javascriptcn.com 代码示例 const map = new Map([ ['key1', 'value1'], ['key2', 'value2'], ]); map.upsert('key1', 'new value'); map.upsert('key3', 'value3'); console.log(map); // Map(3) { 'key1' => 'new value', 'key2' => 'value2', 'key3' => 'value3' }
2. Map.prototype.filter()
Map
类还新增了一个 filter()
方法,可以用于过滤出符合条件的键值对,返回一个新的 Map
对象。
示例代码:
// javascriptcn.com 代码示例 const map = new Map([ ['key1', 'value1'], ['key2', 'value2'], ['key3', 'value3'], ]); const filteredMap = map.filter(([key, value]) => key.startsWith('key')); console.log(filteredMap); // Map(2) { 'key1' => 'value1', 'key2' => 'value2' }
Set 的新功能
1. Set.prototype.intersection()
在 ES12 中,Set
类新增了一个 intersection()
方法,可以用于获取两个 Set
对象的交集,返回一个新的 Set
对象。
示例代码:
const set1 = new Set([1, 2, 3, 4]); const set2 = new Set([3, 4, 5, 6]); const intersection = set1.intersection(set2); console.log(intersection); // Set(2) { 3, 4 }
2. Set.prototype.union()
Set
类还新增了一个 union()
方法,可以用于获取两个 Set
对象的并集,返回一个新的 Set
对象。
示例代码:
const set1 = new Set([1, 2, 3, 4]); const set2 = new Set([3, 4, 5, 6]); const union = set1.union(set2); console.log(union); // Set(6) { 1, 2, 3, 4, 5, 6 }
总结
在本文中,我们介绍了在 ES12 中 Map
和 Set
的新功能,包括 Map.prototype.upsert()
、Map.prototype.filter()
、Set.prototype.intersection()
和 Set.prototype.union()
。这些新的功能能够让我们更加方便地处理键值对和唯一值,提高开发效率。在实际开发中,我们可以根据具体需求选择合适的方法来使用它们。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/656054bdd2f5e1655da83810