ES10 的 Object.values() 和 Object.entries() 方法使用详解
ES10 作为 JavaScript 最新的语言标准,引入了许多新的功能和 API。其中,Object.values() 和 Object.entries() 方法是两个非常实用的 API,它们可以极大地促进 JavaScript 前端开发的效率。在本文中,我们将详细介绍这两个方法的使用方法和注意事项。
- Object.values() 方法
Object.values() 方法是一个静态方法,接收一个对象作为参数,并返回一个数组,该数组包含给定对象中所有可枚举属性的值。该方法在我们需要获取对象属性值集合时非常有用。下面是一个简单的示例:
----- --- - - -- -- -- -- -- - -- ----- ------ - ------------------- -------------------- -- -- --- -- --
使用该方法时需要注意,只有对象属性值是可枚举的时,它们才会被返回到数组中。如果需要获取对象的所有属性,包括不可枚举的属性,应该使用 Object.getOwnPropertyNames() 方法。
- Object.entries() 方法
Object.entries() 方法与 Object.values() 方法类似,不同之处在于它返回的是一个数组,该数组的元素是键值对数组。这两个数组分别包含对象的属性和属性值。下面是一个示例:
----- --- - - -- -- -- -- -- - -- ----- ------- - -------------------- --------------------- -- -- ------ --- ----- --- ----- ---
可以看到,该方法返回的是由键值对组成的数组,每个键值对是一个数组,第一个元素是对象的属性,第二个元素是该属性的值。
Object.entries() 方法也需要注意一些事项。与 Object.values() 方法一样,该方法也只返回可枚举的属性。如果需要获取不可枚举属性的键值对,应该使用 Object.getOwnPropertyNames() 方法。
- 应用示例
下面是一些使用 Object.values() 和 Object.entries() 方法的实际示例。
3.1 筛选数组
如果需要将一个对象转为数组,并且只返回某些属性的值,可以使用 Object.values() 方法结合数组的 filter() 方法。例如:
----- --- - - -- -- -- -- -- - -- ----- ------ - ----------------------------- -- --- --- --- -------------------- -- -- --- --
可以看到,这里先将对象转为了数组,然后用 filter() 方法筛选了值不为 2 的元素。
3.2 使用 for-of 循环
Object.values() 和 Object.entries() 方法可以与 for-of 循环结合使用,方便遍历对象的属性。例如:
----- --- - - -- -- -- -- -- - -- --- ------ ----- -- ------------------- - ------------------- -- ---- -- -- - - --- ------ ----- ------ -- -------------------- - ----------------- ------- ------ ----------- -- ---- ----- -- ------ --- ----- -- ------ --- ----- -- ------ -- -
可以看到,在 for-of 循环中使用这两个方法非常方便,可以直接遍历属性和属性值。
- 总结
Object.values() 和 Object.entries() 方法是 JavaScript 新语言标准 ES10 中引入的两个方法。它们可以极大地促进 JavaScript 前端开发的效率,可以方便地获取对象的属性值集合或者键值对数组。使用这两个方法时,需要注意只有可枚举属性的值才会被返回到数组中。同时可以结合 filter() 方法或者 for-of 循环等语法元素进行使用,实现更为实用的操作。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/64e2f800f6b2d6eab3e44b88