ES2017 是 ECMAScript 的第八个版本,也被称为 ECMAScript 2017。它为 JavaScript 带来了许多新的特性和改进。其中两个特性是 Object.values 和 Object.entries,它们让我们更方便地操作对象,提高了代码的可读性和可维护性。
Object.values
Object.values 方法返回一个给定对象自身的所有可枚举属性值的数组。它的语法如下:
------------------
其中,obj 是要返回值的对象。
下面是一个简单的示例:
----- --- - - ---- ------ ---- -- -- -------------------------------- -- ------- ---
在上面的示例中,我们创建了一个对象,然后使用 Object.values 方法返回了它的所有属性值。
Object.values 方法返回的数组中的元素顺序与使用 for...in 循环遍历对象时返回的顺序相同。如果对象的属性值是一个对象,那么返回的是这个对象的引用。如果对象的属性值是一个函数,那么返回的是函数的字符串表示。
Object.values 方法可以用于许多场景,例如:
- 获取对象属性值的数组
- 检查对象是否有某个属性值
下面是一个示例,演示了如何使用 Object.values 方法获取对象属性值的数组:
----- --- - - -- -- -- -- -- - -- ----- ------ - ------------------- -------------------- -- --- -- --
Object.entries
Object.entries 方法返回一个给定对象自身的所有可枚举属性的键值对数组。它的语法如下:
-------------------
其中,obj 是要返回值的对象。
下面是一个简单的示例:
----- --- - - ---- ------ ---- -- -- --------------------------------- -- -------- ------- ------- ----
在上面的示例中,我们创建了一个对象,然后使用 Object.entries 方法返回了它的所有键值对。
Object.entries 方法返回的数组中的元素顺序与使用 for...in 循环遍历对象时返回的顺序相同。每个键值对都是一个数组,第一个元素是属性名,第二个元素是属性值。如果对象的属性值是一个对象,那么返回的是这个对象的引用。如果对象的属性值是一个函数,那么返回的是函数的字符串表示。
Object.entries 方法可以用于许多场景,例如:
- 将对象转换为 Map 对象
- 将对象转换为数组
下面是一个示例,演示了如何使用 Object.entries 方法将对象转换为 Map 对象:
----- --- - - -- -- -- -- -- - -- ----- --- - --- ------------------------- ----------------- -- --- - --- -- -- --- -- -- --- -- - -
总结
Object.values 和 Object.entries 是 ES2017 中的两个新特性,它们让我们更方便地操作对象,提高了代码的可读性和可维护性。Object.values 方法返回一个给定对象自身的所有可枚举属性值的数组,而 Object.entries 方法返回一个给定对象自身的所有可枚举属性的键值对数组。它们可以用于许多场景,例如获取对象属性值的数组、检查对象是否有某个属性值、将对象转换为 Map 对象、将对象转换为数组等。
在实际开发中,我们可以根据具体的需求来选择使用 Object.values 或 Object.entries 方法,从而让代码更加简洁、优雅、易于维护。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/66067bd5d10417a2224c1daf