在 ES10 中使用 Object.fromEntries 快速将 Map 转为对象

阅读时长 3 分钟读完

在 ES10 中使用 Object.fromEntries 快速将 Map 转为对象

在 JavaScript 编程中,Map 和 Object 是两种常用的数据结构。Map 通常被用作键值对的数据结构,而 Object 则是 JavaScript 中最基本的内置对象。在实际开发中,我们时常需要将 Map 转为 Object 或者将 Object 转为 Map,以方便进行数据处理。

在 ES10 中,我们可以使用 Object.fromEntries() 来快速将 Map 转为 Object。

Object.fromEntries() 的介绍

Object.fromEntries() 是在 ES10 中新增的一个静态方法,它允许将由键值对组成的数组转化成一个对象。

具体来说,Object.fromEntries() 接收一个由键值对组成的数组作为参数,返回一个新的由这些键值对组成的对象。

Map 转 Object 示例

现在,我们来看一个 Map 转 Object 的示例。

-- -------------------- ---- -------
----- ----- - --- ------
----------------- ---------
---------------- ----
------------------- ----------

----- -------- - ------------------------------------

----------------------
-- ------- -------------- ------- ----------------

如上述代码所示,我们使用 new 关键字创建了一个名为 myMap 的新 Map 对象,然后将 "name"、"age" 和 "gender" 三个键值对添加到 Map 中。

接下来,我们使用 Map 的 entries() 方法获取一个由键值对组成的数组,并使用 Object.fromEntries() 将其转化为一个新的对象 myObject。最后,我们打印出 myObject,可以看到成功地将 Map 转为了 Object。

注意事项

  1. Object.fromEntries 在 IE 和 Safari 中不被支持,使用之前要确认目标平台是否支持。

  2. 转化后的 Object 对象和原本的 Map 对象在使用上有一定区别,如果需要保证类型一致可以使用 Map 对象。

  3. 如果遇到 Map 中存在相同的键值对,转化为对象时会忽略后面的键值对(即相同的键值对只会保留第一个)。

总结

Object.fromEntries() 是在 ES10 中新增的一个静态方法,可将由键值对组成的数组快速转化为一个对象。使用 Object.fromEntries() 方法可以方便地将 Map 转为 Object。但需要注意 Object.fromEntries 在 IE 和 Safari 中不被支持,并且转化后的 Object 对象和原本的 Map 对象在使用上可能会有所不同。

在实际开发中,对象和 Map 作为两种常用的数据结构,其优缺点也都有明显的差异。开发者应根据实际需求,灵活应用这两种数据结构。

来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6497723048841e989447654a

纠错
反馈