ES9 新特性:Object.entries() 和 Object.values()
随着 JavaScript 语言的不断发展,新的功能和特性不断的增加。ES9 引入了两个新的 Object 方法:Object.entries() 和 Object.values()。在本篇文章中,我们将探讨它们的用途以及如何正确地使用它们。
Object.entries() 方法
Object.entries() 方法返回一个给定对象自身可枚举属性键值对的数组,数组中的每个元素都是一个二维数组,其中包含对象的键和值。数组中的元素顺序与通过 for...in 循环获取的属性键值对的顺序相同。
以下是 Object.entries() 方法的语法:
Object.entries(obj)
示例代码:
const obj = { x: 1, y: 2, z: 3 }; const entries = Object.entries(obj); console.log(entries); // [ [ 'x', 1 ], [ 'y', 2 ], [ 'z', 3 ] ]
Object.values() 方法
Object.values() 方法返回一个给定对象自身的可枚举属性值的数组,数组中的元素顺序与通过 for...in 循环获取的属性值的顺序相同。
以下是 Object.values() 方法的语法:
Object.values(obj)
示例代码:
const obj = { x: 1, y: 2, z: 3 }; const values = Object.values(obj); console.log(values); // [ 1, 2, 3 ]
Object.entries() 和 Object.values() 的用处
在许多情况下,我们需要遍历一个对象的键值对或属性值,并根据这些值做一些操作。现在有了 Object.entries() 和 Object.values() 方法,我们可以更容易地实现这个目标。
在这里,我将提供一些示例,以演示如何使用 Object.entries() 和 Object.values() 方法。
示例 1:遍历对象的键值对并输出
const obj = { x: 1, y: 2, z: 3 }; const entries = Object.entries(obj); for (let [key, value] of entries) { console.log(`${key} ${value}`); }
示例 2:计算对象属性的和
const obj = { x: 1, y: 2, z: 3 }; const values = Object.values(obj); const sum = values.reduce((a, b) => a + b, 0); console.log(sum); // 6
示例 3:查找对象中具有特定值的属性
const obj = { x: 1, y: 2, z: 3 }; const values = Object.values(obj); const found = values.includes(2); console.log(found); // true
示例 4:将对象转换为 Map 对象
const obj = { x: 1, y: 2, z: 3 }; const map = new Map(Object.entries(obj)); console.log(map); // Map(3) { 'x' => 1, 'y' => 2, 'z' => 3 }
在这些示例中,我们可以看到使用 Object.entries() 和 Object.values() 方法实现的一些常见的任务。这些方法可以使代码更加简洁和易于阅读。
总结
在 ES9 中引入的 Object.entries() 和 Object.values() 方法让我们能够更容易地遍历和操作对象,而无需使用 for...in 循环。这些方法可以优化代码,并使代码具有更好的可读性和可维护性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/664704f0d3423812e453fbe5