如何用变量访问JSON对象动态键?求该数据访问方式名称
解决JavaScript对象属性的动态访问问题
嘿,你现在用的是JavaScript里的点表示法(dot notation)来访问对象属性,这种方式适合属性名固定的场景,但要换成变量动态访问的话,得用方括号表示法(bracket notation)——这就是你要找的解决方案啦!
举个实际的例子,假设你已经在别的地方声明了一个存储日期的变量,比如const targetDay = "Tuesday",那你的代码可以改成这样:
// 假设这是你外部声明的日期变量 const targetDay = "Tuesday"; // 可以换成"Monday"、"Wednesday"等任意日期字符串 getWeekData(UserId, weekNumber).then((data) => { if (!data.Item || !data.Item.weekTotal) { console.log("Week Data Not Found"); } else { weekExercise = data.Item.weekTotal; // 用方括号+变量来动态获取对应日期的数据 dayTotal = data.Item[targetDay]; // 后续的逻辑代码... } });
小知识点补充:
- 点表示法的局限:只能用固定的、符合标识符规则的属性名(不能有空格、特殊字符,也不能是变量)
- 方括号表示法的灵活性:可以接受任意字符串作为属性名,不管是变量、带空格的字符串还是带特殊符号的属性名都能处理
比如如果你的属性名是"Day 1"这种带空格的,点表示法data.Item.Day 1会报错,但用方括号data.Item["Day 1"]就完全没问题。
内容的提问来源于stack exchange,提问作者StMartin
相关产品推荐
相关产品推荐

