ECMAScript 2018 中的 Object.fromEntries() 方法

阅读时长 4 分钟读完

在 ECMAScript 2018 中,新增了一个 Object.fromEntries() 方法,该方法可以将一个包含键值对的数组转换为一个对象。这个方法可以用于前端开发中,使得我们能够更加方便地处理数据。

Object.fromEntries() 方法的使用

Object.fromEntries() 方法接收一个数组作为参数,该数组中的每个元素都是一个包含两个元素的子数组,第一个元素表示键,第二个元素表示值。

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

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

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

在这个例子中,我们将一个包含三个键值对的数组转换为了一个对象。

Object.fromEntries() 方法的深度解析

可迭代对象

Object.fromEntries() 方法接收一个可迭代对象作为参数,这个可迭代对象可以是一个数组,也可以是一个 Map 对象。

如果传入的是一个数组,该数组中的每个元素都必须是一个包含两个元素的子数组,第一个元素表示键,第二个元素表示值。

如果传入的是一个 Map 对象,该 Map 对象中的每个键值对都会被转换成一个对象中的一个键值对。

重复的键

如果传入的数组中有重复的键,那么后面的键值对会覆盖前面的键值对。

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

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

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

键和值的类型

Object.fromEntries() 方法的键和值可以是任意类型,包括对象、函数和 Symbol。

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

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

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

非法输入

如果传入的参数不是可迭代对象,或者可迭代对象中的元素不是一个包含两个元素的子数组,那么 Object.fromEntries() 方法会抛出一个 TypeError 异常。

Object.fromEntries() 方法的指导意义

Object.fromEntries() 方法可以将一个包含键值对的数组转换为一个对象,这个方法可以用于前端开发中,使得我们能够更加方便地处理数据。特别是在处理表单数据时,我们通常会将表单数据转换为一个包含键值对的数组,然后再将这个数组转换为一个对象。

Object.fromEntries() 方法还可以用于将一个 Map 对象转换为一个对象。

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

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

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

结论

Object.fromEntries() 方法是 ECMAScript 2018 中的一个新方法,该方法可以将一个包含键值对的数组转换为一个对象。这个方法可以用于前端开发中,使得我们能够更加方便地处理数据。特别是在处理表单数据时,我们通常会将表单数据转换为一个包含键值对的数组,然后再将这个数组转换为一个对象。

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

纠错
反馈