理解 ECMAScript 2019 中的 Object.fromEntries 方法并在 JavaScript 中使用它

阅读时长 5 分钟读完

JavaScript 中的 Object.fromEntries 方法是在 ECMAScript 2019 版本中引入的。该方法的作用是将一个由键值对组成的数组转换为一个对象。在本文中,我们将深入探讨此方法,并展示它如何在 JavaScript 中使用。

Object.fromEntries 方法

Object.fromEntries() 方法接受一个由键值对组成的数组,并按照其顺序(key-value 的顺序)返回一个新的对象。它的应用场景多样,例如,可以从查询字符串(query string)中构造对象、转换 Map 到 Object 等等。

以下是它的基本语法:

其中,iterable 是一个由键值对组成的可迭代对象,比如 Array、Map,如下例所示:

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

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

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

从上述代码可以看出,我们定义了一个数组 entries,它包含三个键值对。我们将它传递给方法 Object.fromEntries 中,并得到了一个新的对象 obj

Object.fromEntries 方法的应用场景

查询字符串

在 JavaScript 中,可以使用 URLSearchParams 对象来解析查询字符串(query string),然后将它转换为对象。以下是一个将查询字符串转换为对象的例子:

从上述代码可以看出,我们首先创建了一个 URLSearchParams 对象并将查询字符串传递给它。然后,我们将这个对象的所有键值对作为数组返回,并将其传递给 Object.fromEntries 方法来得到一个新对象。

Map 转换为 Object

JavaScript 中的 Map 是一种特殊的对象类型,它是由键值对组成的集合。通常,开发者在处理数据时会用 Map 类型来存储数据,最终需要将它转换为一个纯 JavaScript 对象,此时可以使用 Object.fromEntries 方法。

以下是将 Map 转换为对象的例子:

从上述代码可以看出,我们创建了一个 Map 并定义了两个键值对。然后我们将这个 Map 传递给 Object.fromEntries 方法,并得到了一个新的对象 obj

实际应用示例

以下是一个实际应用示例,它使用 Object.fromEntries 方法将表单序列化数据转换为一个对象:

从上述示例可以看出,我们首先创建了一个 FormData 对象,它包含表单中所有的输入控件。然后我们使用 entries 方法将它们转换为一个由键值对组成的数组,并最终调用 Object.fromEntries 方法将数组转换为对象。

总结

在本文中,我们学习了 ECMAScript 2019 中新增的 Object.fromEntries 方法,并展示了它的基本语法和应用场景。我们还提供了一些实际应用示例,以便读者了解它的使用方式。在实际开发中,可以将此方法运用到多种场景中,从而实现更高效的代码编写。

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

纠错
反馈