在 JavaScript 中,对象是一种非常常见的数据类型,它可以存储键值对,也可以存储函数、数组、甚至是其他对象。在 ES8 中,新增了 Object.values() 和 Object.entries() 两个方法,它们可以帮助我们更方便地操作对象。本文将对这两个方法进行详细介绍,并提供示例代码。
Object.values() 方法
Object.values() 方法可以返回一个对象所有可枚举属性的值(不包括原型链上的属性)。返回的值是一个数组,数组中的元素顺序与对象属性的定义顺序一致。
语法
Object.values(obj)
参数
- obj:要返回值的对象。
返回值
一个包含对象所有可枚举属性值的数组。
示例
const obj = { a: 1, b: 2, c: 3 }; const values = Object.values(obj); console.log(values); // [1, 2, 3]
Object.entries() 方法
Object.entries() 方法可以返回一个对象所有可枚举属性的键值对(不包括原型链上的属性)。返回的值是一个数组,数组中的元素是键值对数组,其中第一个元素是属性名,第二个元素是属性值。数组中元素的顺序与对象属性的定义顺序一致。
语法
Object.entries(obj)
参数
- obj:要返回键值对的对象。
返回值
一个包含对象所有可枚举属性键值对的数组。
示例
const obj = { a: 1, b: 2, c: 3 }; const entries = Object.entries(obj); console.log(entries); // [['a', 1], ['b', 2], ['c', 3]]
使用 Object.values() 和 Object.entries() 方法
1. 遍历对象属性值
使用 Object.values() 方法可以方便地遍历对象的属性值。
const obj = { a: 1, b: 2, c: 3 }; const values = Object.values(obj); for (const value of values) { console.log(value); } // 1 // 2 // 3
2. 遍历对象键值对
使用 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
3. 将对象转换为 Map
使用 Object.entries() 方法可以方便地将对象转换为 Map。
const obj = { a: 1, b: 2, c: 3 }; const map = new Map(Object.entries(obj)); console.log(map); // Map { 'a' => 1, 'b' => 2, 'c' => 3 }
4. 将 Map 转换为对象
使用 Object.fromEntries() 方法可以方便地将 Map 转换为对象,该方法是 ES10 中新增的。
const map = new Map([['a', 1], ['b', 2], ['c', 3]]); const obj = Object.fromEntries(map); console.log(obj); // { a: 1, b: 2, c: 3 }
总结
Object.values() 和 Object.entries() 方法是 ES8 中新增的两个操作对象的方法,它们可以方便地遍历对象属性值和键值对,也可以将对象转换为 Map,或将 Map 转换为对象。在实际开发中,我们可以根据需要灵活使用这两个方法,提高代码的可读性和开发效率。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65dd87cb1886fbafa4adf90e