如何在JavaScript/TypeScript中访问未知外层键对象的value属性
访问未知外层键对象中的
value属性 遇到这种外层键名不确定但内部结构固定的对象,其实有好几种简单的方法能拿到value,我给你整理几个常用的:
方法1:使用Object.values()直接取内部对象
这个方法最直观,直接提取对象所有的值——因为你只有一个外层键,所以取数组的第一个元素就行:
const obj = { '-L7uAVxXmuLeBN1K-B0_': { timestamp: '18:35:18', value: 19.81 } }; const innerObj = Object.values(obj)[0]; const value = innerObj.value; console.log(value); // 输出 19.81
方法2:用Object.keys()获取外层键再访问
如果你需要同时拿到那个未知的外层键,这个方法更合适:
const obj = { '-L7uAVxXmuLeBN1K-B0_': { timestamp: '18:35:18', value: 19.81 } }; const outerKey = Object.keys(obj)[0]; const value = obj[outerKey].value; console.log(value); // 输出 19.81
方法3:解构赋值(更简洁的写法)
ES6+的解构语法可以一步到位,适合追求代码简洁的场景:
const obj = { '-L7uAVxXmuLeBN1K-B0_': { timestamp: '18:35:18', value: 19.81 } }; const [ { value } ] = Object.values(obj); console.log(value); // 输出 19.81
TypeScript中的写法(类型安全版)
如果用TS,你可以先定义内部对象的类型,避免类型报错:
interface InnerData { timestamp: string; value: number; } const obj: { [key: string]: InnerData } = { '-L7uAVxXmuLeBN1K-B0_': { timestamp: '18:35:18', value: 19.81 } }; const [ { value } ] = Object.values(obj); console.log(value); // 类型推断为number,输出19.81
注意:这些方法都默认你的外层对象只有一个键值对,如果有多个的话,你需要遍历处理(比如用for...in或者Object.values().map()),不过从你的例子看应该是单个键的情况~
内容的提问来源于stack exchange,提问作者Blasco
相关产品推荐
相关产品推荐

