在前端开发中,我们经常需要处理对象的属性值和键值对。在 ES8 中,新增了 Object.values
和 Object.entries
两个方法,它们可以快速获取对象属性值或者键值对数组。在这篇文章中,我们将探讨如何在自己的类中使用这些方法,以及如何应用它们来提高代码效率。
Object.values 方法
Object.values
方法返回一个对象的所有属性值组成的数组,数组中的元素顺序与对象属性遍历的顺序一致。使用该方法时需注意的是,该方法只会返回对象自身的可枚举属性值。
下面是 Object.values
方法的语法:
Object.values(obj)
其中,obj
为要获取属性值的对象。
接下来,我们将通过代码示例演示如何使用 Object.values
方法。
示例
首先,我们创建一个名为 Person
的类,并定义该类的两个属性 name
和 age
:
class Person { constructor(name, age) { this.name = name; this.age = age; } }
接下来,我们调用 Object.values
方法获取 Person
类实例的属性值:
const person = new Person('张三', 20); const values = Object.values(person); console.log(values); // ['张三', 20]
从上面代码示例中可以看出,我们成功地获取了 Person
类实例的属性值,并将其存储在 values
数组中。
Object.entries 方法
与 Object.values
方法类似,Object.entries
方法返回一个由对象的键值对数组组成的数组。数组中的元素顺序与对象属性遍历的顺序一致,并且只会返回对象自身的可枚举属性。
下面是 Object.entries
方法的语法:
Object.entries(obj)
其中,obj
为要获取键值对数组的对象。
接下来,我们将通过代码示例演示如何使用 Object.entries
方法。
示例
首先,我们创建一个名为 Person
的类,并定义该类的两个属性 name
和 age
:
class Person { constructor(name, age) { this.name = name; this.age = age; } }
接下来,我们调用 Object.entries
方法获取 Person
类实例的键值对数组:
const person = new Person('张三', 20); const entries = Object.entries(person); console.log(entries); // [['name', '张三'], ['age', 20]]
从上面代码示例中可以看出,我们成功地获取了 Person
类实例的键值对数组,并将其存储在 entries
数组中。
如何应用
上述示例演示了如何使用 Object.values
和 Object.entries
方法获取类实例的属性值和键值对数组。但是,它们的应用不仅仅局限于此。
在实际开发中,我们可以利用这两个方法来处理对象属性值或者键值对数组,在代码中更加高效地操作对象,提高代码效率。
比如,我们可以使用 forEach
方法遍历对象属性值或者键值对数组,如下所示:
const obj = { name: '张三', age: 20 }; const values = Object.values(obj); values.forEach(value => console.log(value)); // '张三' 20 const entries = Object.entries(obj); entries.forEach(([key, value]) => console.log(`${key}: ${value}`)); // 'name: 张三' 'age: 20'
从上面的代码示例中可以看出,我们成功地利用 Object.values
和 Object.entries
方法获取了对象的属性值和键值对数组,然后使用 forEach
方法遍历它们。
除了 forEach
方法外,我们还可以使用其他 Array 对象提供的方法对对象属性值或者键值对数组进行操作,如 map
, filter
, reduce
等。
总结
在本文中,我们详细讲解了 ES8 中的 Object.values
和 Object.entries
方法,包括它们的语法和示例代码。我们还探讨了如何在自己的类中使用这两个方法,并介绍了它们在实际开发中的应用。
通过学习和掌握 Object.values
和 Object.entries
方法,我们能够更加高效地操作对象,提高代码效率,减少开发时间和成本。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/65915f0aeb4cecbf2d68b534