在 JavaScript 中,对象是一种基本的数据类型之一。在前端开发中,经常需要对对象进行操作,例如获取对象的属性、拷贝对象、合并对象等等。ES8 中提供了 Object.values 和 Object.keys 两种方法,可以方便地操作 JavaScript 对象。本篇文章将详细介绍这两种方法的用法。
Object.keys 方法
Object.keys 方法返回一个对象的所有键名组成的数组。例如:
const obj = { foo: 1, bar: 2 }; const keys = Object.keys(obj); console.log(keys); // ['foo', 'bar']
在上面的例子中,Object.keys 方法返回了 obj 对象的所有键,即 ['foo', 'bar']。
Object.keys 方法的语法如下:
Object.keys(obj)
其中 obj 是需要返回键名数组的对象。
Object.keys 方法的实现原理是遍历对象的所有可枚举属性,将其中的键名取出来,返回一个数组。
Object.keys 方法常用于对对象进行遍历。
Object.values 方法
Object.values 方法返回一个对象的所有键值组成的数组。例如:
const obj = { foo: 1, bar: 2 }; const values = Object.values(obj); console.log(values); // [1, 2]
在上面的例子中,Object.values 方法返回了 obj 对象的所有键值,即 [1, 2]。
Object.values 方法的语法如下:
Object.values(obj)
其中 obj 是需要返回键值数组的对象。
Object.values 方法的实现原理是遍历对象的所有可枚举属性,将其中的键值取出来,返回一个数组。
Object.values 方法常用于获取对象的属性值。
示例代码
下面是一些使用 Object.keys 和 Object.values 方法的示例代码:
遍历对象的所有键
const obj = { foo: 1, bar: 2 }; Object.keys(obj).forEach(key => { console.log(key); });
在上面的代码中,我们使用 Object.keys 方法获取 obj 对象的所有键,然后使用 forEach 方法遍历这些键。
检查对象中是否存在某个键
const obj = { foo: 1, bar: 2 }; const hasFoo = Object.keys(obj).includes('foo'); console.log(hasFoo); // true
在上面的代码中,我们使用 Object.keys 方法获取 obj 对象的所有键,然后使用 includes 方法检查其中是否包含 'foo' 键。
对象属性求和
const obj = { foo: 1, bar: 2 }; const sum = Object.values(obj).reduce((acc, cur) => acc + cur); console.log(sum); // 3
在上面的代码中,我们使用 Object.values 方法获取 obj 对象的所有属性值,然后使用 reduce 方法求和。
总结
ES8 中提供了 Object.keys 和 Object.values 两种方法,可以方便地操作 JavaScript 对象。Object.keys 方法用于获取对象的所有键名组成的数组,Object.values 方法用于获取对象的所有键值组成的数组。这两种方法常用于对象遍历、属性检查、属性求和等操作。熟练掌握这两种方法,可以提高代码的编写效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/646bca04968c7c53b0af74ba