在前端开发中,我们经常需要将对象转换为 Map 对象。在 ES6 中,我们可以使用 Object.entries() 方法将对象转换为数组,然后使用 Map 构造函数将数组转换为 Map 对象。但是,这种方法需要两次转换,效率相对较低。在 ES11 中,新增了 Object.fromEntries() 方法,可以直接将对象转换为 Map 对象,大大提高了转换效率。
Object.fromEntries() 方法
Object.fromEntries() 方法可以将一个键值对数组转换为一个对象,其语法如下:
----------------------------
其中,iterable 是一个可迭代的键值对数组,例如:
----- --- - --------- ------- ------- ----- ----- --- - ------------------------ ----------------- -- - ----- ------ ---- -- -
Map 对象
Map 对象是一种类似于对象的数据结构,它以键值对的形式存储数据,其中键可以是任意数据类型。与对象不同的是,Map 对象中的键值对是有顺序的,而且可以使用迭代器访问。
Map 对象的常用方法有:
- set(key, value):设置键值对
- get(key):获取键对应的值
- has(key):判断是否存在指定键
- delete(key):删除指定键值对
- clear():清空 Map 对象
对象转 Map
利用 Object.fromEntries() 方法和 Map 对象,我们可以实现高效的对象转 Map 操作。例如,将以下对象转换为 Map 对象:
----- --- - - ----- ------ ---- -- --
我们可以使用以下代码实现:
----- --- - --- ------------------------- ----------------- -- --- - ------ -- ------ ----- -- -- -
其中,Object.entries() 方法将对象转换为键值对数组,然后使用 Map 构造函数将数组转换为 Map 对象。
而使用 Object.fromEntries() 方法,则可以直接将对象转换为 Map 对象,代码如下:
----- --- - --- ------------------------- ----------------- -- --- - ------ -- ------ ----- -- -- -
总结
利用 ES11 中的 Object.fromEntries() 方法和 Map 对象,我们可以实现高效的对象转 Map 操作。这种方法不仅可以提高转换效率,而且代码更加简洁易懂。在开发中,我们应该尽可能地利用新的语法和 API,提高代码的可读性和性能。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/65153d5195b1f8cacddab95a