在 ES8 中,新增了两个非常方便的对象方法:Object.values() 和 Object.entries()。这两个方法可以让我们更方便地获取对象的属性值和键值对,从而提高我们在前端开发中的开发效率。
Object.values()
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.values() 方法返回了一个包含对象属性值的数组。
Object.entries()
Object.entries() 方法可以将对象的键值对以数组的形式返回,数组中的每个元素都是一个长度为 2 的数组,第一个元素表示键,第二个元素表示值。下面是 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.entries() 方法返回了一个包含对象键值对的数组。
应用场景
Object.values() 和 Object.entries() 方法的应用场景非常广泛。下面是一些常见的应用场景:
遍历对象属性值
通过 Object.values() 方法,我们可以非常方便地遍历对象的属性值,从而进行一些操作。
const obj = { a: 1, b: 2, c: 3 }; Object.values(obj).forEach(value => { console.log(value); });
遍历对象键值对
通过 Object.entries() 方法,我们可以非常方便地遍历对象的键值对,从而进行一些操作。
const obj = { a: 1, b: 2, c: 3 }; Object.entries(obj).forEach(([key, value]) => { console.log(key, value); });
将对象转换为 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 }
获取对象属性值的和
通过 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
总结
通过本文的介绍,我们了解了 ES8 中新增的 Object.values() 和 Object.entries() 方法,以及它们的应用场景。通过使用这两个方法,我们可以更方便地获取对象的属性值和键值对,从而提高我们在前端开发中的开发效率。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6559cb4ad2f5e1655d439016