在 ECMAScript 2017 中,JavaScript 添加了新的方法 Object.values()
和 Object.entries()
,用于方便地获取对象的值或键值对数组。这两个新方法都可以用于 ES6 中已有的对象、数组、Map,但 Object.entries() 还可以用于 Set。
Object.values()
Object.values()
返回一个包含给定对象所有可枚举属性值的数组。属性的顺序与 for...in
循环保持一致,但数组中只包含对象自身的属性,不包括继承自原型链上的属性。
使用 Object.values()
的语法如下:
------------------
其中,obj
是要检索属性的对象。
下面是一个简单的示例,演示如何使用 Object.values()
:
----- --- - - ----- ------ ---- --- ------ --------------- -- ----- ------ - ------------------- -------------------- -- ------- --- ----------------
Object.entries()
Object.entries()
返回一个包含给定对象所有可枚举属性键值对的数组,其中每个键值对为一个两个元素数组,第一个元素是属性的键名,第二个元素是属性的值。同样地,只包括对象自身的属性,不包括继承的属性。
使用 Object.entries()
的语法如下:
-------------------
下面是一个简单的示例,演示如何使用 Object.entries()
:
----- --- - - ----- ------ ---- --- ------ --------------- -- ----- ------- - -------------------- --------------------- -- --------- ------- ------- ---- --------- -----------------
深入了解
在实践中,Object.values()
和 Object.entries()
可以用于很多有用的场景。例如,你可以使用 Object.entries()
来迭代对象的属性或将其转换成一个 Map。你也可以使用 Object.values()
来将对象的值转换成一个数组。下面是一些示例:
----- --- - - ----- ------ ---- --- ------ --------------- -- -- ------ --- -- ----- --- - --- ------------------------- ----------------- -- --- - ------ -- ------ ----- -- --- ------- -- --------------- - -- ------- --- ------ ----- ------ -- -------------------- - -------------------- ----------- - -- ------------ ----- ------ - ------------------- -------------------- -- ------- --- ----------------
除了对象之外,Object.values()
和 Object.entries()
也可以用于数组。Array.prototype.values() 方法已经存在了,提供了与这两个方法相似的功能,返回一个迭代器,对数组中的每一个值都生成一个 { value: xx, done: false }
对象;而 Array.prototype.entries() 方法类似于 Object.entries()
,返回一个键值对的数组。
总结
Object.values()
和 Object.entries()
是 ECMAScript 2017 中添加的两个新方法,它们分别返回一个包含给定对象所有可枚举属性值或键值对数组的数组。这两个方法都可以用于对象、数组、Map,但只有 Object.entries()
可以用于 Set。在实践中,它们可以用于许多有用的场景,包括迭代对象的属性、将对象转换成 Map、将对象的值转换成一个数组等。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/64b0e3fb48841e9894d19b11