在 JavaScript 中,对象是一种非常常见的数据类型。而在 ES8/ES2017 中,新增了两个非常有用的方法:Object.values 和 Object.entries。这两个方法可以帮助我们更加方便地操作对象,简化代码并提高效率。
Object.values
Object.values 方法返回一个给定对象自身的所有可枚举属性值的数组,顺序与使用 for...in 循环的顺序相同(不同的是 for-in 循环还会枚举原型链中的属性)。
const obj = { a: 1, b: 2, c: 3 }; const values = Object.values(obj); console.log(values); // [1, 2, 3]
我们可以将 Object.values 用于需要操作对象属性值的场景,例如将对象属性值相加:
const obj = { a: 1, b: 2, c: 3 }; const sum = Object.values(obj).reduce((acc, cur) => acc + cur, 0); console.log(sum); // 6
Object.entries
Object.entries 方法返回一个给定对象自身可枚举属性的键值对数组,顺序与使用 for...in 循环的顺序相同(同样不会枚举原型链中的属性)。
const obj = { a: 1, b: 2, c: 3 }; const entries = Object.entries(obj); console.log(entries); // [['a', 1], ['b', 2], ['c', 3]]
我们可以将 Object.entries 用于需要同时操作对象属性键和值的场景,例如将对象属性键和值进行交换:
const obj = { a: 1, b: 2, c: 3 }; const swappedObj = Object.fromEntries(Object.entries(obj).map(([key, value]) => [value, key])); console.log(swappedObj); // {1: 'a', 2: 'b', 3: 'c'}
总结
Object.values 和 Object.entries 可以帮助我们更加方便地操作对象,简化代码并提高效率。在实际开发中,我们可以灵活地运用这两个方法来满足不同的业务需求。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65601b12d2f5e1655da49ddd