前言
ECMAScript 2020 在语言层面上引入了许多新特性,其中之一就是 Object.fromEntries()
方法。该方法的作用是将一个由键值对组成的数组转换成一个对象。这个新特性看起来似乎比较简单,但是它却提供了一些非常有用的功能。在本文中,我们将详细介绍 Object.fromEntries()
方法,以及如何在实践中使用它。
语法
我们先来看一下 Object.fromEntries()
方法的语法:
Object.fromEntries(iterable)
这个方法接收一个可迭代对象(例如数组),它应该由一些键值对组成。然后该方法返回一个新的对象,这个对象由键值对组成,这些键值对来自于可迭代对象。
示例
下面是一个简单的例子,说明如何使用 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