ECMAScript 2019 中的 Object.values() 和 Object.entries(),让你的对象操作更加简单!
在前端开发中,经常需要对对象进行操作,例如获取对象的属性值、遍历对象等。而在 ECMAScript 2019 中,新增了 Object.values() 和 Object.entries() 方法,可以更加简单方便地对对象进行操作。
Object.values() 方法可以返回一个由对象的所有属性值组成的数组,而 Object.entries() 方法则返回一个由对象的键值对组成的数组。下面我们分别介绍它们的用法和示例代码。
Object.values()
Object.values() 方法的语法如下:
Object.values(obj)
其中,obj 表示要获取属性值的对象。该方法返回一个由 obj 对象的属性值组成的数组。
下面是一个示例代码:
const obj = {a: 1, b: 2, c: 3}; const values = Object.values(obj); console.log(values); // [1, 2, 3]
在上述示例中,我们定义了一个对象 obj,并使用 Object.values() 方法获取了该对象的属性值,并将其保存在 values 变量中。最后将 values 数组输出到控制台中。
Object.entries()
Object.entries() 方法的语法如下:
Object.entries(obj)
其中,obj 表示要获取键值对的对象。该方法返回一个由 obj 对象的键值对组成的数组,每个键值对都是一个长度为 2 的数组,第一个元素为键,第二个元素为值。
下面是一个示例代码:
const obj = {a: 1, b: 2, c: 3}; const entries = Object.entries(obj); console.log(entries); // [['a', 1], ['b', 2], ['c', 3]]
在上述示例中,我们定义了一个对象 obj,并使用 Object.entries() 方法获取了该对象的键值对,并将其保存在 entries 变量中。最后将 entries 数组输出到控制台中。
应用场景
Object.values() 和 Object.entries() 方法可以简化我们对对象的操作。例如,我们可以使用 Object.values() 方法来计算对象属性的总和:
const obj = {a: 1, b: 2, c: 3}; const values = Object.values(obj); const sum = values.reduce((acc, cur) => acc + cur, 0); console.log(sum); // 6
在上述示例中,我们先使用 Object.values() 方法获取了对象 obj 的属性值,然后使用 reduce() 方法将属性值累加起来,得到了属性值的总和。
而 Object.entries() 方法则可以方便地遍历对象的键值对:
const obj = {a: 1, b: 2, c: 3}; const entries = Object.entries(obj); for (const [key, value] of entries) { console.log(`${key}: ${value}`); } // a: 1 // b: 2 // c: 3
在上述示例中,我们使用 Object.entries() 方法获取了对象 obj 的键值对,然后使用 for...of 循环遍历每个键值对,输出键和值。
总结
Object.values() 和 Object.entries() 方法是 ECMAScript 2019 中新增的两个方法,可以方便地对对象进行操作。Object.values() 方法可以返回对象的属性值数组,而 Object.entries() 方法则可以返回对象的键值对数组。它们的应用场景非常广泛,可以用来计算属性值的总和、遍历对象键值对等。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/660cac07d10417a222cfa6f6