ES8 引入了许多新的特性和静态对象方法,其中 Object.entries() 和 Object.values() 是其中两个值得我们深入学习的方法之一。
Object.entries()
Object.entries() 方法返回一个给定对象自身可枚举属性的键值对数组。这个数组包含了该对象的所有属性,包括继承自原型对象的属性,键值对的顺序与通过手动循环对象的属性时一致。
Object.entries() 方法的语法如下:
-------------------
其中,obj 表示要获取键值对的对象。
下面是一个例子:
----- --- - - ----- ------ ---- --- ------- ------ -- ----- ------- - -------------------- --------------------- -- ------- - - ------- ----- -- - ------ -- -- - --------- ------ - -
Object.values()
Object.values() 方法返回一个给定对象自身可枚举属性的属性值数组。这个数组包含了该对象的所有属性的值,顺序与通过手动循环对象的属性时一致。
Object.values() 方法的语法如下:
------------------
其中,obj 表示要获取属性值数组的对象。
下面是一个例子:
----- --- - - ----- ------ ---- --- ------- ------ -- ----- ------ - ------------------- -------------------- -- ------- - ------ --- ------ -
示例应用
Object.entries() 和 Object.values() 可以帮助我们更方便地遍历对象。下面介绍两个可以用到这两个方法的例子。
转换对象为 Map
你可以使用 Object.entries() 将对象转换为 Map 对象,示例代码如下:
----- --- - - ----- ------ ---- --- ------- ------ -- ----- --- - --- ------------------------- ----------------- -- ------- --- - ------ -- ------ ----- -- --- -------- -- ------ -
查找对象中某个属性的值是否唯一
你可以使用 Object.values() 将对象中某个属性的值全部取出,然后利用 Set 去重,如果去重后的长度和原数组长度相等,说明该属性值唯一,否则不唯一,示例代码如下:
----- --- - - - ----- ------ ---- --- ------- ------ -- - ----- ------- ---- --- ------- -------- -- - ----- ------- ---- --- ------- -------- -- -- -------- ------------- ---- - ------ --- -------------------------------- -- ----------------- --- ----------- - ------------------------- -------- -- ------- -----
总结
Object.entries() 和 Object.values() 方法是非常实用的两个静态对象方法,它们可以帮助我们更方便地遍历对象,转换对象为 Map 对象以及查找对象中某个属性的值是否唯一。希望本文能对您有所帮助。
来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/646911ee968c7c53b092344b