ECMAScript 2017(ES8)中更新的 Object.values 和 Object.entries 方法

在2017年发布的ECMAScript 2017标准中,有两个新的Object方法被添加了进来,它们分别是Object.values和Object.entries。这两个新方法能够大幅度提高开发人员的开发效率和代码的可读性。在本文中,我们将深入研究这两个方法,并为大家提供一些实例代码。

Object.values()

Object.values()方法返回一个给定对象的属性值的数组。属性值的顺序与使用for...in循环得到的顺序相同,但是不保证,因为for-in循环是枚举对象的所有可枚举属性(包括原型中的属性)。

使用方法

语法如下:

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

其中obj参数是必需的,obj表示要从中提取值的目标对象。

示例

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

上述示例中,我们定义了一个名为obj的对象,然后使用Object.values()方法来提取obj对象中的所有属性的值,最后返回的是一个数组。

Object.entries()

Object.entries()方法返回一个给定对象自身可枚举属性的[key, value]形式的数组,数组中的key-value对与for...in循环遍历的顺序相同(不保证,因为for-in循环遍历的是原型链上所有可枚举的属性)。

使用方法

语法如下:

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

其中obj参数是必需的,obj表示要从中提取键值对的目标对象。

示例

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

上述示例中,我们定义了一个名为obj的对象,然后使用Object.entries()方法来提取obj对象中的所有属性的键值对,最后返回的是一个二维数组。

用法示例

Object.values和Object.entries可与数组和函数很好地结合使用。

Object.values()

从对象获取值

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

转换Map数据结构为数组

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

Object.entries()

将对象转换为Map数据结构

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

将对象转换为数组

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

结论

Object.values和Object.entries方法为ECMAScript的JS引擎添加了更多有用的功能。通过快速和高效地获取对象和数组的值和键值对,这两个函数能够大幅提高您的代码质量和开发效率。我强烈建议大家开始使用这两个函数,让您的代码变得更加清晰、可读、可维护,从而提高应用程序的质量。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/672be027ddd3a70eb6d392b1