在 JavaScript 中,字典类型是一种非常常见的数据结构。字典类型本质上是一种映射关系,它将键与值相关联。ES10(ECMAScript 2019)引入了字典类型的原生支持,使得开发者可以更加便捷地使用字典类型。
ES10 字典类型的基础知识
ES10 字典类型的基础知识包括以下几个方面:
创建字典类型
ES10 中,我们可以使用 Map 类型来创建字典类型。Map 类型是一种键值对的集合,其中每个键对应一个值。我们可以使用 new Map() 来创建一个空的字典类型,也可以使用 new Map(iterable) 来创建一个已经包含键值对的字典类型。
// 创建空的字典类型 const dict = new Map(); // 创建包含键值对的字典类型 const dict = new Map([['key1', 'value1'], ['key2', 'value2']]);
添加键值对
我们可以使用 set(key, value) 方法向字典类型中添加键值对。如果字典类型中已经存在指定的键,则新的值会覆盖旧的值。
const dict = new Map(); dict.set('key1', 'value1'); dict.set('key2', 'value2');
获取值
我们可以使用 get(key) 方法获取指定键对应的值。如果字典类型中不存在指定的键,则返回 undefined。
const dict = new Map([['key1', 'value1'], ['key2', 'value2']]); console.log(dict.get('key1')); // 输出 'value1' console.log(dict.get('key3')); // 输出 undefined
删除键值对
我们可以使用 delete(key) 方法删除字典类型中指定的键值对。
const dict = new Map([['key1', 'value1'], ['key2', 'value2']]); dict.delete('key1');
获取键值对数量
我们可以使用 size 属性获取字典类型中键值对的数量。
const dict = new Map([['key1', 'value1'], ['key2', 'value2']]); console.log(dict.size); // 输出 2
ES10 字典类型的高级用法
除了基础的操作之外,ES10 字典类型还支持一些高级用法,包括以下几个方面:
遍历字典类型
我们可以使用 for...of 循环遍历字典类型中的键值对。
const dict = new Map([['key1', 'value1'], ['key2', 'value2']]); for (const [key, value] of dict) { console.log(key, value); }
使用 forEach 方法遍历字典类型
我们可以使用 forEach(callback) 方法遍历字典类型中的键值对。callback 函数接收三个参数:当前值、当前键和字典类型本身。
const dict = new Map([['key1', 'value1'], ['key2', 'value2']]); dict.forEach((value, key, map) => { console.log(key, value); });
使用扩展运算符将字典类型转换为数组
我们可以使用扩展运算符将字典类型转换为数组。
const dict = new Map([['key1', 'value1'], ['key2', 'value2']]); const arr = [...dict]; console.log(arr); // 输出 [['key1', 'value1'], ['key2', 'value2']]
使用 Object.fromEntries 方法将数组转换为字典类型
我们可以使用 Object.fromEntries(entries) 方法将数组转换为字典类型。entries 数组中的每个元素都应该是一个键值对数组。
const arr = [['key1', 'value1'], ['key2', 'value2']]; const dict = new Map(Object.fromEntries(arr)); console.log(dict); // 输出 Map { 'key1' => 'value1', 'key2' => 'value2' }
总结
ES10 引入了字典类型的原生支持,使得开发者可以更加便捷地使用字典类型。除了基础的操作之外,ES10 字典类型还支持一些高级用法,例如遍历、转换等。在开发过程中,我们可以根据实际需求选择合适的操作方式来使用字典类型。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65825ab6d2f5e1655dd7b1e2