ES9 的标准库:Object 的 fromEntries 方法

阅读时长 3 分钟读完

在 ECMAScript 2018(也就是 ES9) 中,JavaScript 给 Object 加入了一个新方法:fromEntries。这个方法可以将一个键值对数组转换为对象,该对象会包含这些键值对。该方法提供了更方便的方式来创建对象,尤其是针对那些需要一次性从多个源集合读取的数据。

语法

Object.fromEntries(iterable)

  • iterable:一个可迭代的对象,比如 Map、Set、Array 等,包含了键值对的数组。

应用示例

使用数组创建对象

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

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

使用 Map 对象创建对象

组合多种类型的对象

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

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

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

需要注意的是,如果 entries 的值中有相同的键名,则后面的键值会覆盖前面的键值。如下面这个示例:

注意事项

  • iterable 必须是一个可迭代的对象。如果传递的对象不是可迭代的对象,则会抛出一个 TypeError。

  • iterable 应该是一个包含键值对的数组,其中每个键值对都是数组的一个元素。如果某个键值对的元素数量不等于 2,则会以该键值对的 index 和 value 属性作为实际的键和值。如果键是一个对象,则 Object.toString() 方法会被调用进行转换。

  • 如果 iterable 中的元素中有任意部分丢失,则该方法运行结束并抛出 TypeError 。

总结

Object.fromEntries 提供了一种更方便的方式来创建对象,适用于那些需要从多个源集合快速读取数据的场景。需要注意的是,iterable 必须是包含键值对的数组,每个键值对都是一个数组元素。在实际应用时,我们可以使用这个特性来减少代码量和提高开发效率。

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

纠错
反馈