我有一个包含电话加速度计值的对象。
我需要的值嵌套在对象的符号内。
如何访问这些值?
对象名称是“消息”。
我已经尝试过了
console.log(message.__sensor__.quaternion);
但是我得到的结果是“未定义”。
我以前从未使用过JavaScript中的 Symbol 数据类型。
我要访问的值是四元数值
这是对象结构的屏幕截图-
谢谢您的帮助。
答案 0 :(得分:3)
属性
OrientationSensor.quaternion
:返回四个元素的Array,其元素包含表示设备方向的单元四元数的分量。
所以:
console.log(message.quaternion);
您还可以在屏幕快照中看到对象本身具有吸气剂quaternion
。
我以前从未在JavaScript中使用过Symbol数据类型。
出于各种原因,使用符号作为属性名称,但是如果使用它们,几乎总是意味着您作为API的使用者,不应直接访问该值。而是应使用对象提供的“公共” API来访问此数据,例如在这种情况下。
答案 1 :(得分:0)
function GetSymbol(object, name) {
const string = `Symbol(${name})`
return Object.getOwnPropertySymbols(object).find(symbol => symbol.toString() === string)
}
const __sensor__ = GetSymbol(message, "__sensor__")
console.log(message[__sensor__])