在 ES7 中,我们可以使用全局对象 Object
的两个新方法: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]]
使用技巧
1. 遍历对象的属性值
使用 Object.values()
方法可以更简洁地遍历对象的属性值。例如,我们可以使用 for...of
循环遍历一个数组:
const arr = [1, 2, 3]; for (const value of arr) { console.log(value); }
而使用 Object.values()
方法,则可以使用 for...of
循环遍历一个对象的属性值:
const obj = { a: 1, b: 2, c: 3 }; for (const value of Object.values(obj)) { console.log(value); }
2. 遍历对象的键值对
使用 Object.entries()
方法可以更方便地遍历对象的键值对。例如,我们可以使用 for...of
循环遍历一个数组的索引和值:
const arr = [1, 2, 3]; for (const [index, value] of arr.entries()) { console.log(index, value); }
而使用 Object.entries()
方法,则可以使用 for...of
循环遍历一个对象的键值对:
const obj = { a: 1, b: 2, c: 3 }; for (const [key, value] of Object.entries(obj)) { console.log(key, value); }
3. 将对象转为 Map 对象
使用 Object.entries()
方法可以将一个对象转为 Map
对象。例如,我们可以将一个对象转为 Map
对象,并使用 Map
对象的方法来操作它:
const obj = { a: 1, b: 2, c: 3 }; const map = new Map(Object.entries(obj)); console.log(map.get('a')); // 1 console.log(map.get('b')); // 2 console.log(map.get('c')); // 3
4. 将对象转为数组
使用 Object.entries()
方法可以将一个对象转为数组。例如,我们可以将一个对象转为数组,并使用数组的方法来操作它:
const obj = { a: 1, b: 2, c: 3 }; const arr = Object.entries(obj); console.log(arr[0]); // ['a', 1] console.log(arr[1]); // ['b', 2] console.log(arr[2]); // ['c', 3]
总结
ES7 全局对象 Object.values()
和 Object.entries()
方法可以帮助我们更方便地处理对象的数据,在前端开发中具有重要的学习和指导意义。使用这两个方法可以提高开发效率和代码质量,特别是在遍历对象、将对象转为 Map
对象和数组等场景下,能够更加方便地操作对象的数据。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/655f96ead2f5e1655d9cdbb5