深入学习 ES2017 的 Object.values() 和 Object.entries()

在 ES2017 中,Object.values()Object.entries() 是两个非常有用的方法,它们可以让我们更方便地处理对象的值和键值对。本文将深入探讨这两个方法的使用方法和指导意义。

Object.values()

Object.values() 方法返回对象自身可枚举属性的值的一个数组,值的顺序与使用 for...in 循环的顺序相同(不过,for...in 循环还会枚举原型链上的属性)。下面是一个简单的示例:

这里,我们定义了一个包含三个属性的对象 obj,然后使用 Object.values() 方法获取了它的值,并将结果存储在 values 变量中。最后,我们打印了 values 数组,它包含了对象的所有值。

需要注意的是,Object.values() 方法只会返回对象自身的可枚举属性的值,而不会返回继承自原型链上的属性的值。如果我们想获取所有属性的值,包括继承自原型链上的属性的值,我们可以使用 for...in 循环。

Object.entries()

Object.entries() 方法返回一个给定对象自身可枚举属性的键值对数组。每个键值对都是一个数组,第一个元素是键,第二个元素是对应的值。下面是一个简单的示例:

这里,我们定义了一个包含三个属性的对象 obj,然后使用 Object.entries() 方法获取了它的键值对,并将结果存储在 entries 变量中。最后,我们打印了 entries 数组,它包含了对象的所有键值对。

需要注意的是,Object.entries() 方法只会返回对象自身的可枚举属性的键值对,而不会返回继承自原型链上的属性的键值对。如果我们想获取所有属性的键值对,包括继承自原型链上的属性的键值对,我们可以使用 for...in 循环。

指导意义

Object.values()Object.entries() 方法提供了一种更方便的方式来处理对象的值和键值对。它们可以使代码更简洁、更易读,并且可以减少出错的可能性。我们可以使用它们来遍历对象,进行过滤、排序、映射等操作。

下面是一些示例代码,展示了如何使用 Object.values()Object.entries() 方法来进行一些常见的操作:

过滤对象的值

过滤对象的键值对

将对象的值映射为新的值

将对象的值映射为新的键值对

将多个对象合并为一个对象

这些示例代码只是冰山一角,Object.values()Object.entries() 方法还有很多用法,需要我们自己去发掘和实践。

总结

Object.values()Object.entries() 方法是两个非常有用的方法,它们可以让我们更方便地处理对象的值和键值对。我们可以使用它们来遍历对象,进行过滤、排序、映射等操作,使代码更简洁、更易读,并且可以减少出错的可能性。希望本文能够帮助你更深入地理解和使用这两个方法。

来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/6565a4d0d2f5e1655dedf093


纠错
反馈