ES9 中新增的 Object.values() 方法详解
ECMAScript 2018(简称 ES9)已经发布了,其中针对对象的扩展也有不少改进。本文介绍其中一个新增的方法——Object.values(),并深度探讨其应用场景和使用技巧,希望能对前端开发者有所帮助。
什么是 Object.values() 方法
Object.values() 方法返回一个包含一个对象中所有可枚举属性值的数组。
它的定义如下:
Object.values(obj)
其中,obj 表示需要返回属性值的对象,返回结果是:obj 中所有可枚举属性值的数组。
示例代码
// 使用 Object.values() 方法 const obj = { name: '小明', age: 20, sex: 'male' } const values = Object.values(obj) console.log(values) // ["小明", 20, "male"]
可以看到,通过 Object.values() 方法,我们可以方便地将一个对象的属性值取出来得到一个数组,使得我们能更加方便地使用这些属性值。
深入探究 Object.values() 方法
Object.values() 方法可以很方便地获取一个对象的属性值,但对于对象的键名,该方法没有提供任何方式来获取。
那么,如果要获取一个对象的键名,有什么方法可以使用呢?
解决方法
实际上,ES2017(ES8)引入了 Object.entries() 方法,该方法可以返回一个数组,包含一个对象中所有可枚举属性的键值对,其中数组中每个对象的第一项为键名,第二项为键值。
聪明的读者肯定想到了:可以将 Object.entries() 方法返回的数组转换为对象,从而得到一个对象的键名。
下面是这个过程的示例代码:
-- -------------------- ---- ------- -- -- ---------------- -- ----- --- - - ----- ----- ---- --- ---- ------ - ----- ------- - ------------------- ----- ---- - -- ---------------------- -- ------------- - -------- ----------------- -- ------ ----- ---- --- ---- -------
当然,如果只需要获取一个对象的键名,可以利用数组的解构赋值来简化代码:
-- -------------------- ---- ------- -- -------- ----- --- - - ----- ----- ---- --- ---- ------ - ----- ------- - ------------------- ----- ---- - -- ---------------------- ------- -- --------- - ------ ----------------- -- ------ ----- ---- --- ---- -------
总结
本文介绍了 ES9 中的 Object.values() 方法,该方法可以方便地将一个对象的属性值取出来得到一个数组。
同时,针对对象的键名,可以使用 ES2017 中的 Object.entries() 方法获取每个键名和其对应的属性值的数组,再转换成对象得到对应的键名。
通过深度探讨 Object.values() 方法的应用场景和使用技巧,希望对前端开发者有所启示和帮助。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/64ec733cf6b2d6eab36bef9a