简介
ECMAScript 2017 引入了 Object.values() 方法,可以获取一个对象所有可枚举属性的值,返回值是一个数组,且值的顺序与对象中属性的顺序一致。
Object.values() 的语法如下:
Object.values(obj)
其中,obj 表示要获取属性值的对象。
用法
Object.values() 方法的用法很简单,我们只需要将要获取属性值的对象作为参数传递给该方法即可。该方法的返回值是一个数组,数组中包含了对象中所有可枚举属性的值。
示例如下:
const obj = { name: 'Jack', age: 24, sex: 'male' } const objValues = Object.values(obj) console.log(objValues) // ['Jack', 24, 'male']
注意事项
Object.values() 方法只会获取对象中可枚举的属性值,并且是按照属性定义的顺序返回的,对于不可枚举的属性值不会进行返回。
如果传递给 Object.values() 方法的参数不是一个对象,该方法会抛出 TypeError 异常。
Object.values() 方法是 ES2017 中新增的,不兼容所有浏览器,尤其是一些较老的浏览器。我们可以使用 babel-polyfill 将其转换成 ES5 语法,以保证兼容性。
案例分析
下面我们看一个案例分析,这个案例是一个简单的计算器,其中存储了一个运算符对象和两个数字:
-- -------------------- ---- ------- ----- -------- - - ---- --- -- -- - - -- ---- --- -- -- - - -- ---- --- -- -- - - -- ---- --- -- -- - - - - ----- ---- - -- ----- ---- - - ----- --------- - ---
我们使用 Object.values() 方法获取 operator 对象中所有的方法值,这样我们就可以根据用户选择的运算符,执行相应的计算了。
示例如下:
if (Object.values(operator).includes(operator[operation])) { console.log(operator[operation](num1, num2)) // 15 } else { console.log('Invalid operation') }
这里我们使用 Object.values() 方法将 operator 对象中所有的方法值抽取出来,然后使用 includes() 方法判断用户选择的运算符是否存在于 operator 中。如果存在,就执行相应的计算,否则输出错误信息。
总结
Object.values() 方法是 ECMAScript 2017 中新增的方法,它可以方便地获取对象中的所有可枚举属性的值。在实际项目中,我们可以使用该方法对对象进行操作,使代码更加简洁优雅,提高工作效率。同时,我们还需要注意兼容性和错误处理等问题,保证代码的稳定性和可靠性。
来源:JavaScript中文网 ,转载请注明来源 https://www.javascriptcn.com/post/654ced4d7d4982a6eb643523