ES6 中的 Object.keys() 和 Object.values() 详解及应用场景
ES6 中的 Object.keys() 和 Object.values() 是两个非常实用的方法,主要用于获取对象的键名和键值。本文将详细介绍这两个方法的用法和应用场景。
一、Object.keys()
Object.keys() 方法可以返回一个由一个给定对象的自身可枚举属性组成的数组。这个数组中的属性名是字符串类型,并按照 Object.getOwnPropertyNames() 方法的顺序排列。
语法:
Object.keys(obj)
参数:
obj:必须,要返回其枚举自身属性的对象。
返回值:
由指定对象的所有可枚举自身属性的属性名组成的数组。
示例:
const obj = {a: 1, b: 2, c: 3}; const keys = Object.keys(obj); console.log(keys); // ["a", "b", "c"]
二、Object.values()
Object.values() 方法返回一个由对象自身的可枚举属性值组成的数组,值的顺序与 Object.keys() 方法返回的数组一致。
语法:
Object.values(obj)
参数:
obj:必须,要返回其可枚举属性值的对象。
返回值:
由指定对象的所有可枚举自身属性值组成的数组。
示例:
const obj = {a: 1, b: 2, c: 3}; const values = Object.values(obj); console.log(values); // [1, 2, 3]
三、应用场景
- 遍历对象
Object.keys() 和 Object.values() 方法可以帮助我们更方便地遍历对象的键名和键值。
示例:
const obj = {a: 1, b: 2, c: 3}; Object.keys(obj).forEach(key => { console.log(key); // "a", "b", "c" }); Object.values(obj).forEach(value => { console.log(value); // 1, 2, 3 });
- 判断对象是否为空
使用 Object.keys() 方法可以快速判断一个对象是否为空对象。
示例:
const obj = {}; if (Object.keys(obj).length === 0) { console.log("obj is an empty object"); // "obj is an empty object" }
- 反转对象的键值对
使用 Object.keys() 和 Object.values() 方法可以轻松地将一个对象的键值对反转。
示例:
const obj = {a: 1, b: 2, c: 3}; const reversedObj = Object.fromEntries( Object.keys(obj).map(key => [obj[key], key]) ); console.log(reversedObj); // {1: "a", 2: "b", 3: "c"}
四、总结
Object.keys() 和 Object.values() 是 ES6 中非常实用的方法,它们可以帮助我们更方便地操作对象的键名和键值。除了上文中提到的应用场景外,它们还有许多其他的应用场景,需要我们在开发中不断去发现和探索。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64646966968c7c53b0546431