在 ECMAScript 2017 中,Object 对象新增了两个方法 Object.values 和 Object.entries。本文将介绍这两个方法的使用和解析,以及它们的学习和指导意义。
Object.values 方法
Object.values 方法返回一个给定对象自身的所有可枚举属性值的数组。该数组的顺序与使用 for...in 循环遍历该对象时返回的顺序相同(区别在于 for-in 循环还会枚举原型链中的属性)。
语法如下:
Object.values(obj)
其中,obj 为要返回其可枚举属性值的对象。
下面是一个示例代码:
const obj = { foo: 'bar', baz: 42 }; console.log(Object.values(obj)); // ['bar', 42]
在上面的示例中,我们定义了一个对象 obj,它有两个属性:foo 和 baz。然后,我们使用 Object.values 方法返回 obj 对象的所有可枚举属性值,即 ['bar', 42]。
需要注意的是,Object.values 方法只返回对象自身的可枚举属性值,不包括继承的属性值。
Object.entries 方法
Object.entries 方法返回一个给定对象自身可枚举属性的键值对数组。该数组的顺序与使用 for...in 循环遍历该对象时返回的顺序相同(区别在于 for-in 循环还会枚举原型链中的属性)。
语法如下:
Object.entries(obj)
其中,obj 为要返回其可枚举属性的键值对数组的对象。
下面是一个示例代码:
const obj = { foo: 'bar', baz: 42 }; console.log(Object.entries(obj)); // [['foo', 'bar'], ['baz', 42]]
在上面的示例中,我们定义了一个对象 obj,它有两个属性:foo 和 baz。然后,我们使用 Object.entries 方法返回 obj 对象的所有可枚举属性的键值对数组,即 [['foo', 'bar'], ['baz', 42]]。
需要注意的是,Object.entries 方法只返回对象自身的可枚举属性的键值对数组,不包括继承的属性的键值对。
学习和指导意义
Object.values 和 Object.entries 方法为开发者提供了一种更简洁、更直观的方式来访问对象的属性值和属性的键值对。这些方法的出现使开发者无需手动遍历对象属性,从而提高了代码的可读性和维护性。
另外,Object.values 和 Object.entries 方法还可以与其他 Array 方法(如 map、filter、reduce 等)结合使用,进一步简化代码的编写和处理对象属性的操作。
需要注意的是,Object.values 和 Object.entries 方法只能处理对象的可枚举属性,不包括不可枚举属性和 Symbol 类型的属性。
结论
Object.values 和 Object.entries 方法是 ECMAScript 2017 中新增的两个 Object 对象方法,用于返回给定对象自身的所有可枚举属性值和可枚举属性的键值对数组。它们的出现使开发者可以更方便地访问对象属性,简化代码的编写和处理对象属性的操作。需要注意的是,它们只能处理对象的可枚举属性,不包括不可枚举属性和 Symbol 类型的属性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/67456e11c1a23897ea955d24