请解释 JavaScript 中的 Object.fromEntries() 方法的作用和用法。

推荐答案

Object.fromEntries() 方法用于将一个键值对的列表(通常是 Map 或包含键值对的二维数组)转换为一个对象。它会遍历输入的键值对,并将每个键值对的键作为对象的属性名,值作为属性值,最终返回一个新创建的对象。

本题详细解读

语法

  • iterable: 一个可迭代对象,例如 Map 对象、二维数组、或任何实现了迭代协议的对象,其迭代器产生键值对,形式如 [key, value]

作用

Object.fromEntries() 的核心作用是将数据结构转换为对象。这在以下场景中非常有用:

  1. 将 Map 转换为对象: Map 对象存储键值对,但与普通对象不同,Object.fromEntries() 提供了一种直接将其转换为普通对象的方法。
  2. 处理 API 返回的键值对数组: 某些 API 可能返回键值对的二维数组,可以使用此方法将其转换为对象,方便后续操作。
  3. 反向操作 Object.entries(): 与 Object.entries() 方法相反,Object.entries() 将对象转换为键值对的二维数组,而 Object.fromEntries() 则执行相反的操作。

用法示例

从 Map 转换

从二维数组转换

处理特殊键

如果 iterable 中的键不是字符串或者可以转换为字符串,则会使用 String(key) 强制类型转换。

重复键

如果 iterable 中存在重复的键,后面的键值对会覆盖前面的键值对。

与 Object.entries() 的关系

Object.fromEntries()Object.entries() 的逆操作。你可以将一个对象转换为键值对的数组,然后用 Object.fromEntries() 转换回对象:

兼容性

Object.fromEntries() 是 ES2019 中引入的新方法,现代浏览器和 Node.js 版本都支持它。如果需要在较旧的环境中使用,可能需要使用 polyfill。

纠错
反馈