ES10 中的 Object.fromEntries() 方法:类似于 Object.entries() 的逆操作

阅读时长 4 分钟读完

在ES10中,引入了一个新的对象方法 Object.fromEntries()。该方法功能是将一个键值对的迭代器转换为一个对象。

我们先来看一下方法的基本语法:

可迭代对象(Iterable)是一个拥有迭代器(Iterator)的对象。常见的可迭代对象如ArrayMapSetString等。很明显,该方法参数只能是可迭代的对象。

Object.fromEntries() 的使用

Object.fromEntries()方法可以将由键值对构成的数组或Map对象,转换成普通对象。例如:

可以看到,将一个 Map 对象转换成一个对象,其键值对就变成了对象中的键值对。

除了 Map 对象之外,也可以将数组中的键值对转换成对象,例如:

通过将一个由键值对数组构成的数组转换为一个对象,可以方便地对这些数据进行操作。

Object.fromEntries() 与 Object.entries() 的差异

Object.entries() 方法返回了一个对象的键值对数组。而 Object.fromEntries() 方法则返回相反的结果,将一个包含键值对的数组或Map对象转换成一个对象。

举个例子:

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

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

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

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

我们可以看到,通过 Object.entries() 方法将对象转换成键值对数组,对这个数组进行操作,在使用 Object.fromEntries() 方法转换成对象,就相当于得到原来的对象。

推荐使用场景

Object.fromEntries() 方法非常适合用于将一些键值对数据的操作结果,转换成一个对象。例如从服务器返回数据,将数据进行格式化后,转换成一个键值对数组并将其转换为对象。

下面是一个简单的例子,通过将一个包含键值对数组转换为对象,来统计数组中每个元素出现的次数:

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

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

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

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

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

通过这个例子我们可以看到,将一个包含键值对数组转换成对象,可以更方便地处理一些数据,并可以进行深入的操作。

总结

在 ES10 中,Object.fromEntries() 方法是一个非常实用的工具,它可以方便地将一个由键值对构成的数组或者 Map 对象转换成普通对象。在一些键值对数组的操作中,使用该方法可以非常方便地进行数据的处理和操作。

以上就是 Object.fromEntries() 方法的介绍和推荐使用场景,它的学习和使用我们相信对于前端开发者来说必将大有帮助。

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

纠错
反馈