ECMAScript 2020 中的 Object.fromEntries() 方法详解

阅读时长 4 分钟读完

前言

ECMAScript 2020 在语言层面上引入了许多新特性,其中之一就是 Object.fromEntries() 方法。该方法的作用是将一个由键值对组成的数组转换成一个对象。这个新特性看起来似乎比较简单,但是它却提供了一些非常有用的功能。在本文中,我们将详细介绍 Object.fromEntries() 方法,以及如何在实践中使用它。

语法

我们先来看一下 Object.fromEntries() 方法的语法:

这个方法接收一个可迭代对象(例如数组),它应该由一些键值对组成。然后该方法返回一个新的对象,这个对象由键值对组成,这些键值对来自于可迭代对象。

示例

下面是一个简单的例子,说明如何使用 Object.fromEntries() 方法:

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

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

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

在上面的例子中,我们使用了一个由多个键值对组成的数组,然后使用 Object.fromEntries() 方法将它们转换成对象。在这个例子中,可迭代对象是由三个子数组组成的,每个子数组都由两个元素组成,一个是键、一个是值。

深入了解

虽然这个方法看起来很简单,但是实际上它具有非常有用的功能。让我们来看看更深入的用法。

将 map 转成对象

在 JavaScript 中,Map 是一种非常有用的数据结构。它类似于对象,但它可以使用任何类型的键来存储值。Map 本质上也是由键值对组成的,所以我们可以非常方便地使用 Object.fromEntries() 将一个 Map 转换成对象。

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

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

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

在上面的代码中,我们先创建了一个 Map 对象,然后使用 Object.fromEntries() 将它转换成了一个对象。在这个例子中,我们传递了一个 Map 对象作为参数,该对象由三个键值对组成,然后 Object.fromEntries() 方法将它们转换成了一个对象。

对象合并

Object.fromEntries() 方法可以用于合并两个对象(或 Map、数组)。

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

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

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

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

在这个例子中,我们首先将两个对象转换成了数组,然后使用 concat() 方法将它们合并在一起。最后,传递给 Object.fromEntries() 方法的数组由这两个对象的键值对组成,这些键值对被用于创建一个新的对象。

操作对象

Object.fromEntries() 方法可以用于转换、筛选或修改一个对象的键值对。

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

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

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

在这个例子中,我们首先调用了 Object.entries() 方法将原始对象转换成了数组。然后,我们使用 filter() 方法将数组中的 age 键过滤掉。最后,我们使用 Object.fromEntries() 方法将筛选后的数组转换成了一个新的对象。

总结

虽然 Object.fromEntries() 方法看起来比较简单,但它实际上提供了一些非常有用的功能,包括将数组转换成对象、将 Map 转换成对象、对象合并以及操作对象。使用 Object.fromEntries() 方法可以让我们的代码更简单、更易读、更易维护。因此,这个方法值得我们在实践中广泛使用。

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

纠错
反馈