介绍
在 ES8 中,新增了许多对象静态方法,其中 Object.values() 就是其中之一。这个方法可以返回一个给定对象自身可枚举属性的值的数组(不包括原型链上的属性)。它的返回值是按照对象属性的顺序排列的。这个方法的出现,使对象的属性值获取变得更加方便。
用法
Object.values() 方法接收一个对象作为参数,返回一个数组,这个数组包含了这个对象的所有属性值。让我们看一下这个方法的用法:
Object.values(obj)
obj
:要返回属性值的对象。
返回值:给定对象自身可枚举属性的值所组成的数组。
示例
让我们看一下使用 Object.values() 方法来获取一个对象的属性值的例子。
const obj = { a: 1, b: 2, c: 3 }; const objValues = Object.values(obj); console.log(objValues); // [1, 2, 3]
在这个例子中,我们定义了一个包含三个属性的对象,并使用 Object.values() 方法来获取这个对象的所有属性值。我们把这些属性值存储在一个数组中,并使用 console.log() 方法来打印出这个数组。
深入解析
除了可以获取对象的属性值之外,Object.values() 方法还可以用来处理数组对象。当向 Object.values() 方法传入一个数组对象时,这个方法会返回一个包含数组元素值的新数组。例如:
const arr = [1, 2, 3, 4, 5]; const arrValues = Object.values(arr); console.log(arrValues); // [1, 2, 3, 4, 5]
在这个例子中,我们定义了一个包含五个元素的数组,并使用 Object.values() 方法来获取这个数组的所有元素值。与前述相似,我们把这些元素值存储在一个数组中,并使用 console.log() 方法来打印出这个数组。
对于其他的数据类型,Object.values() 方法同样适用。不过需要注意的是,如果将一个非对象类型的参数传入 Object.values() 方法,它将会抛出 TypeError 异常。
最后要注意的是,Object.values() 只会返回对象自身的属性(即 enumerable 为 true 的属性)。继承而来的属性将不会被包含在返回的数组中。
总结
ES8 新增的对象静态方法 Object.values() 是一个用于获取对象自身的、可枚举的所有属性值的方法。它非常方便,可以便捷地处理对象或数组中的元素值。需要注意的是,如果向这个方法中传入非对象类型的参数,它将会报错。同时,为获取继承而作用的属性值,我们需要使用 Object.getOwnPropertyNames() 方法和 Object.getOwnPropertyDescriptor() 方法来完成。
我们可以在项目中广泛使用 Object.values() 方法,来快速、方便地处理我们所需要的属性值。
来源:JavaScript中文网 ,转载请注明来源 本文地址:https://www.javascriptcn.com/post/65374f9c7d4982a6ebfc8ea8