使用 ES8 中的 Object.fromEntries() 方法实现对象转换

阅读时长 4 分钟读完

前端开发中,我们经常需要对对象进行转换。在 ES8 中,新增了一个非常方便的方法 Object.fromEntries(),可以将键值对转换为对象。

什么是 Object.fromEntries() 方法?

Object.fromEntries() 方法是 ES8 中新增的一个方法。它接收一个可迭代的对象(如数组、Map 等),并返回一个新的对象,该对象由键值对数组转换而来。

示例代码:

为什么要使用 Object.fromEntries() 方法?

在前端开发中,经常会遇到需要将键值对数组转换为对象的场景。比如,我们从后端接口中获取的数据结构可能是一个键值对数组,我们需要将其转换为一个对象,方便我们进行操作。

以前实现这个功能,我们需要使用 for 循环或 reduce() 方法等方式进行遍历,使用起来比较繁琐。而使用 Object.fromEntries() 方法,可以更加简单地实现转换操作。

使用 Object.fromEntries() 方法实现对象转换

以前我们可能使用如下的方式来将键值对数组转换为对象:

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

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

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

使用 Object.fromEntries() 方法简单多了:

实际应用场景

Object.fromEntries() 方法可以帮助我们方便地将一些数据结构转换为对象,应用场景非常广泛。比如,在前端框架中,我们经常需要处理后端接口返回的数据,将其转换为我们需要的数据结构,该方法可以帮助我们更加方便地实现这个功能。

示例代码:

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

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

以上示例代码中,我们从后端接口中获取了一个数组,然后将其转换为一个键值对数组,最后使用 Object.fromEntries() 方法将其转换为一个对象。

总结

Object.fromEntries() 方法是 ES8 中一个非常方便的方法,可以帮助我们将键值对数组快速转换为对象。在实际应用中,该方法可以帮助我们更加方便地处理数据,提高开发效率。

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

纠错
反馈