在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