ES8 中新增了一个方法 Object.values(),该方法可以返回一个给定对象所有可枚举属性的值所组成的数组,而数组中的属性值顺序是和 Object.entries()返回的数组的属性名顺序是一样的。相比起Object.keys()方法,Object.values() 方法返回的是属性值,而不是属性名,因此使用起来更加方便。
使用方法
Object.values()方法的语法如下:
Object.values(obj)
参数:obj为一个对象。
返回值:一个由obj对象的属性值所组成的数组。
示例代码
下面是一个使用Object.values()方法的示例代码:
const myObj = {x: 1, y: 2, z: 3}; const values = Object.values(myObj); console.log(values); // [1, 2, 3]
在这个代码片段中,我们定义了一个名为myObj的对象,它包含三个属性,分别是x、y和z。然后,我们使用Object.values()方法,将myObj中的所有属性值组成一个数组,并将该数组存储在values变量中。最后,我们通过控制台输出values数组,以便我们可以查看它的内容。
使用场景
Object.values() 方法的应用场景很广泛,下面我们以实际的例子来说明它的使用场景:
- 从对象中获取属性值
假设我们需要从一个对象中获取所有的属性值,那么我们可以使用Object.values()方法,如下所示:
const myObj = {x: 1, y: 2, z: 3}; const values = Object.values(myObj); console.log(values); // [1, 2, 3]
- 获取对象属性之和
使用Object.values()方法,我们可以很方便地计算一个对象的属性之和,如下所示:
const myObj = {x: 1, y: 2, z: 3}; const values = Object.values(myObj); const sum = values.reduce((total, current) => total + current, 0); console.log(sum); // 6
在此代码片段中,我们使用Object.values()方法获取了myObj对象的所有属性值。接着,我们使用reduce()方法计算了属性值的总和,并将其展示在控制台上。
- 获取对象属性的平均值
除了计算属性值之和,使用Object.values()方法我们还可以很方便地计算属性值的平均值,如下所示:
const myObj = {x: 1, y: 2, z: 3}; const values = Object.values(myObj); const sum = values.reduce((total, current) => total + current, 0); const avg = sum / values.length; console.log(avg); // 2
在此代码片段中,我们使用Object.values()方法获取了myObj对象的所有属性值。接着,我们使用reduce()方法计算了属性值的总和,并将其存储在变量 sum 中。最后,我们计算其中平均值,并将其展示在控制台上。
- 查找属性值
使用Object.values()方法,我们可以很方便地查找一个对象中是否包含某个属性值,如下所示:
const myObj = {x: 1, y: 2, z: 3}; const values = Object.values(myObj); const search = 2; console.log(values.includes(search)); // true
在此代码片段中,我们使用Object.values()方法获取了myObj对象的所有属性值。接着,我们指定了一个search变量存储我们要查找的属性值。然后,我们使用includes()方法查找该属性值是否在属性值数组中,最后,我们将结果展示在控制台上。
总结
Object.values()是一个非常有用的方法,它可以让我们更加方便地获取对象中的属性值,并且它的使用场景也很广泛,例如计算属性值之和、属性值的平均值、查找属性值等。在你的日常工作中,你可以更加灵活地使用这个方法,帮助你提高开发效率,此外还能够增强代码的可读性,让你的代码更加简洁明了。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64660483968c7c53b06b1550