通过点属性访问器以字符串形式获取对象键

时间:2019-08-09 11:48:12

标签: javascript

给出一个对象,例如let x = {y: 123, z: 321};我想知道是否存在一种优雅的方式来将字段名称获取为字符串,例如x.y.name() === 'y'

我知道可以使用Object.keys和Object.values(Object.keys(x)[Object.values(x).indexOf(x.y)])来完成,但是必须有更好的方法。

1 个答案:

答案 0 :(得分:0)

似乎没有比使用Object.keys(x)[Object.values(x).indexOf(x.y)]更好的方法了,只有在没有重复值且没有值NaN且没有+0-0个值。因此,这不是一个非常稳定的解决方案。如果需要引用对象字段的名称,则可以将常量用于键:

const fieldName1 = 'abc';
let object = {[fieldName1]: 123};