ES10 之 Object.fromEntries( ) 详解

阅读时长 4 分钟读完

在 JavaScript 的语言规范更新中,ES10 (ECMAScript 2019)增加了一些新的实用特性,其中之一就是 Object.fromEntries 方法。这个方法可以将键值对列表转换为对象。本文将深入探讨 Object.fromEntries 的使用,包括其对我们在前端开发中的意义和相关的实例代码。

Object.fromEntries 的作用

Object.fromEntries 方法用于将键值对列表转换为对象。它接受一个数组或者可迭代对象作为参数,并返回一个新的对象。这个方法可以接受一个二维数组,其中每个子数组都由两个元素组成,第一个元素是键,第二个元素是值。这个方法可以帮助我们简化一些任务,比如:

  • 将 Map 转换为对象;
  • 将对象的属性转换为数组并重新组合为对象;
  • 创建一个新的对象,并将其初始化为一个给定的键值映射。

举一个例子,可以通过使用 Object.fromEntries 将一个 Map 对象转换为一个简单对象。它可以将 Map 对象中的所有键值转换为对象的属性和值。

Object.fromEntries 的实例

下面是一些实例说明,它们说明了在实现不同的任务时,Object.fromEntries 可能会非常有用。

1. 将数组转换为对象

我们可以使用 Object.fromEntries 方法将一个由键值对数组组成的数组转换为一个对象。例如:

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

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

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

2. 删除对象中某些特定属性

我们可以通过将对象的属性之一转换为数组,然后使用 Array.prototype.filter 方法来删除特定属性。最后,我们再将数组转换回对象。例如:

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

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

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

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

在这个实例中,我们将 person 对象的属性转换为数组,并使用 Array.prototype.filter 方法来删除 agecity 属性。最后,我们将数组转换回对象,并将其保存到 obj 中。

3. 从 URL 参数中创建对象

我们可以将 URL 中的查询参数转换为一个包含对象的单一对象(比如解析传递给脚本的 location.search)。

在这个实例中,我们创建了一个新的 URLSearchParams 并传入一个字符串,然后通过 Object.fromEntries 方法创建了一个新的对象(保存到变量 obj 中)。该对象包含了解析自查询字符串的所有参数和值。

总结

Object.fromEntries 方法是一个非常有用的工具,可以帮助我们将一个包含键值对的数组转换为一个对象。这个方法可以使我们的代码更整齐、更可读,并减少代码的长度。我们可以使用它来创建新的对象、过滤掉对象的属性或将 URL 中的参数转换为一个包含对象的对象,等等。在前端开发中,Object.fromEntries 更是有着广泛的使用领域。

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

纠错
反馈