内置对象链中的标准化:ES9 引入了 Object.fromEntries

阅读时长 4 分钟读完

在 JavaScript 中,内置对象(Native Objects)是一组 API,它们由实现 JavaScript 引擎的浏览器或 Node.js 内置提供。ES9 引入了一个名为 Object.fromEntries 的新方法,该方法用于将一组键值对转换为对象。

为什么需要 Object.fromEntries?

在 JavaScript 中,经常需要将一组键值对转换为对象。这通常可以通过循环遍历和手动添加属性来实现,如下所示:

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

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

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

但是,这种方法比较繁琐,需要额外的代码来循环遍历和添加属性。ES9 引入的 Object.fromEntries 方法,可以更简洁地实现同样的效果,如下所示:

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

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

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

可以看到,使用 Object.fromEntries 只需一行代码即可将一组键值对转换为对象。

使用 Object.fromEntries

Object.fromEntries 的语法格式如下:

其中,iterable 是一个可迭代对象,它是一个键值对的数组(二维数组)或可迭代的返回一个键值对元组的迭代器对象。

Object.fromEntries 方法将给定的数组或迭代器中的键值对转换为一个新的对象,并以键值对的形式返回该对象。

下面是一个使用数组作为参数的示例:

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

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

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

下面是一个使用迭代器作为参数的示例:

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

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

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

可以看到,Object.fromEntries 方法可以接受不同的输入类型,并返回一个合并了所有键值对的新对象。

兼容性和可替代性

目前(2021 年 10 月),Object.fromEntries 方法已经被包括在了现代浏览器和 Node.js 中。可以通过以下方式检查浏览器是否支持该方法:

对于不支持 Object.fromEntries 方法的浏览器,可以使用以下代码作为替代方案:

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

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

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

总结

Object.fromEntries 方法是 ES9 中新增的一个方法,它可以将一组键值对转换为对象。使用 Object.fromEntries 方法,可以更简洁地实现同样的效果,并且在可读性和可维护性方面具有优势。但是,在使用 Object.fromEntries 方法之前,需要检查浏览器是否支持该方法,并考虑使用兼容性更好的替代方案。

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

纠错
反馈