在 ES11 中,Map 和 Set 类型增加了一些更新和插入元素的新方法,这些方法使得使用 Map 和 Set 更加方便高效。本文将对这些新方法进行详细介绍,并提供示例代码以帮助读者理解。
Map 的更新和插入方法
Map 是一种键值对的集合类型,其中每个键都是唯一的。在 ES11 中,Map 增加了三个新的更新和插入方法:setIfAbsent()
、update()
和 upsert()
。
setIfAbsent()
setIfAbsent()
方法用于向 Map 中添加一个键值对,但只有当指定的键不存在时才会执行添加操作。如果指定的键已经存在,则方法不执行任何操作。
// javascriptcn.com 代码示例 const map = new Map([ ['key1', 'value1'] ]); map.setIfAbsent('key1', 'newValue'); // 不会执行添加操作 map.setIfAbsent('key2', 'value2'); // 添加新的键值对 console.log(map.get('key1')); // 输出 'value1' console.log(map.get('key2')); // 输出 'value2'
update()
update()
方法用于更新 Map 中指定键对应的值。如果指定的键不存在,则方法不执行任何操作。
const map = new Map([ ['key1', 'value1'] ]); map.update('key1', value => value.toUpperCase()); // 更新键值对的值 console.log(map.get('key1')); // 输出 'VALUE1'
upsert()
upsert()
方法用于向 Map 中添加一个键值对,或者更新已存在的键对应的值。
// javascriptcn.com 代码示例 const map = new Map([ ['key1', 'value1'] ]); map.upsert('key1', value => value.toUpperCase()); // 更新键值对的值 map.upsert('key2', () => 'value2'); // 添加新的键值对 console.log(map.get('key1')); // 输出 'VALUE1' console.log(map.get('key2')); // 输出 'value2'
Set 的更新和插入方法
Set 是一种元素集合类型,其中每个元素都是唯一的。在 ES11 中,Set 增加了两个新的更新和插入方法:addIfAbsent()
和 upsert()
。
addIfAbsent()
addIfAbsent()
方法用于向 Set 中添加一个元素,但只有当指定的元素不存在时才会执行添加操作。如果指定的元素已经存在,则方法不执行任何操作。
const set = new Set(['value1']); set.addIfAbsent('value1'); // 不会执行添加操作 set.addIfAbsent('value2'); // 添加新的元素 console.log(set.has('value1')); // 输出 true console.log(set.has('value2')); // 输出 true
upsert()
upsert()
方法用于向 Set 中添加一个元素,或者更新已存在的元素。
const set = new Set(['value1']); set.upsert('value1', value => value.toUpperCase()); // 更新元素的值 set.upsert('value2', () => 'value2'); // 添加新的元素 console.log(set.has('value1')); // 输出 true console.log(set.has('VALUE1')); // 输出 true console.log(set.has('value2')); // 输出 true
总结
ES11 中的 Map 和 Set 类型增加了一些新的更新和插入方法,使得使用这些类型更加方便高效。这些方法都有自己的特点和用途,开发者可以根据实际需求选择合适的方法。使用这些新方法可以使代码更加简洁易读,并提高代码执行效率。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65424c267d4982a6ebbf4c9c