在 ES8 中,引入了一些新的 JavaScript 方法和语法特征,其中包括 Object.entries() 和 Object.values(),这些方法提供了一种简单方便的新方式来处理对象。在本文中,我们将介绍这两种方法并提供一些示例,帮助您更好地理解它们的使用方式。
Object.entries() 和 Object.values() 简介
在 ES8 中,Object 属性新增了两个用于访问对象属性的方法:Object.entries() 和 Object.values()。
Object.entries() 方法返回一个数组,其中包含对象的所有可枚举属性的键值对。数组中的每个元素都是一个长度为2的数组,其中第一个元素是键名,第二个元素是键值。而 Object.values() 方法返回一个数组,其中包含对象的所有可枚举属性的值。
如何使用 Object.entries() 和 Object.values()
以下是一些示例,展示如何使用 Object.entries() 和 Object.values() 方法。
对象的所有属性名称和值
您可以使用 Object.entries() 方法来获取对象的定义所有属性名称和值的数组。这个例子返回一个数组,其中每个元素都是一个 [键名, 键值] 对:
const myObj = { a: 1, b: 2, c: 3 }; const entries = Object.entries(myObj); console.log(entries); // Output: [ ['a', 1], ['b', 2], ['c', 3] ]
对象的所有属性名称
您可以使用 Object.keys() 方法来获取对象的所有属性名称。这个例子返回一个数组,其中每个元素都是对象的属性名称:
const myObj = { a: 1, b: 2, c: 3 }; const keys = Object.keys(myObj); console.log(keys); // Output: [ 'a', 'b', 'c' ]
对象的所有属性值
您也可以使用 Object.values() 方法来获取对象的所有属性值。这个例子返回一个数组,其中每个元素都是对象的属性值:
const myObj = { a: 1, b: 2, c: 3 }; const values = Object.values(myObj); console.log(values); // Output: [ 1, 2, 3 ]
过滤对象中的属性
可以使用 Object.keys() 和 Array.filter() 方法来过滤对象中的属性。下面的示例展示如何查找所有属性值为偶数的属性名称:
const myObj = { a: 1, b: 2, c: 3, d: 4 }; const keys = Object.keys(myObj).filter(key => myObj[key] % 2 === 0); console.log(keys); // Output: [ 'b', 'd' ]
计算对象属性值的总和
你可以使用 Object.values() 和 Array.reduce() 方法来计算对象属性值的总和。下面的示例展示如何计算对象中所有属性值的总和:
const myObj = { a: 1, b: 2, c: 3 }; const sum = Object.values(myObj).reduce((total, value) => total + value, 0); console.log(sum); // Output: 6
总结
Object.entries() 和 Object.values() 提供了一种简单且便捷的方法来处理对象。它们可以让您轻松地获取对象的所有属性名称和值,并使用其他方法来查询、排序或转换对象。希望这篇文章能够帮助您更好地理解它们的使用方式。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/6492cb2248841e9894097ce5