如何从这个复杂的JavaScript对象访问值?

如何从这个复杂的JavaScript对象访问值?,javascript,Javascript,我和你一起工作 我有一个包含手机加速计值的对象 我需要的值嵌套在对象的符号中 如何访问这些值 对象名称为“消息” 我已经试过了 console.log(message.__sensor__.quaternion); 但我得到的结果是“未定义” 我以前从未在JavaScript中使用过符号数据类型 我要访问的值是四元数值 这是对象结构的屏幕截图- 感谢您的帮助。来自: 性质 方向传感器.四元数:返回一个四元素数组,其元素包含表示设备方向的单位四元数的组件 因此: 您还可以在屏幕截图中看到,对象

我和你一起工作

我有一个包含手机加速计值的对象

我需要的值嵌套在对象的符号中

如何访问这些值

对象名称为“消息”

我已经试过了

console.log(message.__sensor__.quaternion);
但我得到的结果是“未定义”

我以前从未在JavaScript中使用过符号数据类型

我要访问的值是四元数值

这是对象结构的屏幕截图-

感谢您的帮助。

来自:

性质
方向传感器.四元数
:返回一个四元素数组,其元素包含表示设备方向的单位四元数的组件

因此:

您还可以在屏幕截图中看到,对象本身有一个getter
四元数


我以前从未在JavaScript中使用过符号数据类型

符号用作属性名的原因多种多样,但如果使用它们,则几乎总是意味着作为API的使用者,您不应该直接访问该值。相反,您应该使用对象提供的“公共”API来访问此数据,例如在本例中。

函数GetSymbol(对象、名称){ 常量字符串=`Symbol(${name})` 返回Object.getOwnPropertySymbols(Object.find)(symbol=>symbol.toString()==string) } 常数传感器=GetSymbol(消息“\uuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuuu
console.log(message[\uuu sensor\uuu])
Hey,感谢您的快速回复。我得到了四个未定义的值。知道为什么吗?也许你想在传感器读取数据之前访问数据。参见@FelixKling我以为问题是关于访问符号属性的,我猜是
”\_(ツ)_/'
。在更高的层次上,问题是如何访问那里的数据,答案是使用公共API来访问。
console.log(message.quaternion);