在 ES9 中,JavaScript 引入了两个新的对象方法:Object.values() 和 Object.entries()。这两个方法可以方便地获取对象的属性值和键值对数组。
Object.values()
Object.values() 方法返回一个包含对象所有属性值的数组,顺序与 for...in 循环遍历对象时的顺序一致。如果对象没有属性,返回一个空数组。
语法
Object.values(obj)
参数
obj
:要获取属性值的对象。
返回值
一个包含对象所有属性值的数组。
示例
const obj = { a: 1, b: 2, c: 3 }; const values = Object.values(obj); console.log(values); // [1, 2, 3]
Object.entries()
Object.entries() 方法返回一个包含对象所有键值对的数组,顺序与 for...in 循环遍历对象时的顺序一致。每个键值对都是一个包含两个元素的数组,第一个元素为键名,第二个元素为对应的属性值。如果对象没有属性,返回一个空数组。
语法
Object.entries(obj)
参数
obj
:要获取键值对的对象。
返回值
一个包含对象所有键值对的数组。
示例
const obj = { a: 1, b: 2, c: 3 }; const entries = Object.entries(obj); console.log(entries); // [['a', 1], ['b', 2], ['c', 3]]
应用场景
获取对象属性值数组
使用 Object.values() 方法可以方便地获取对象所有属性值的数组。例如,可以用它来计算对象属性值的总和、平均值等。
-- -------------------- ---- ------- ----- --- - - -- -- -- -- -- - -- ----- ------ - ------------------- -- ------- ----- --- - ------------------- ---- -- --- - ---- --- -- -------- ----- --- - --- - -------------- ----------------- -- - ----------------- -- -
过滤对象属性
使用 Object.entries() 方法可以方便地过滤对象属性。例如,可以用它来过滤出满足条件的属性,然后再将它们转换为一个新对象。
-- -------------------- ---- ------- ----- --- - - -- -- -- -- -- - -- ----- ------- - -------------------- -- ---------- - --- ----- --------------- - --------------------- ------- -- ----- -- --- -- --------------- ----- ------ - ------------------------------------ -------------------- -- - -- -- -- - -
转换对象属性
使用 Object.entries() 和 Object.fromEntries() 方法可以方便地转换对象属性。例如,可以用它来将对象的属性名和属性值互换。
-- -------------------- ---- ------- ----- --- - - -- -- -- -- -- - -- ----- ------- - -------------------- -- ---------- ----- -------------- - ------------------ ------- -- ------- ------ -- --------------- ----- ------ - ----------------------------------- -------------------- -- - -- ---- -- ---- -- --- -
总结
ES9 中引入了 Object.values() 和 Object.entries() 方法,它们可以方便地获取对象的属性值和键值对数组。使用这两个方法可以简化代码、提高效率,并且可以应用于各种场景,如获取对象属性值数组、过滤对象属性、转换对象属性等。在实际开发中,可以结合其他方法和语法,发挥出更大的威力。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65d3053fadd4f0e0ffb43f02