如何在Google Apps Script中使用变量作为哈希表键
问题解答:Google Apps Script中用变量作为对象键的语法问题
你遇到的错误确实是因为Google Apps Script的旧运行环境不支持ES6的计算属性名语法(也就是用[变量]直接作为对象字面量的键)。
为什么会报错?
早期的Google Apps Script基于ES5标准,而计算属性名是ES6才引入的新特性,所以旧环境会把[depEYFSEn]识别为无效的属性ID,抛出"Invalid property ID"错误。
两种解决方案:
方案1:ES5兼容写法(无需升级运行时)
先创建空对象,再通过方括号语法逐个赋值,这是ES5完全支持的写法:
var depEYFSEn = "EYFS English"; var depEYFSIt = "EYFS Italian"; // 先初始化空对象 var folderRoots = {}; // 用变量作为键赋值 folderRoots[depEYFSEn] = "sdfg0987897sdfga3"; folderRoots[depEYFSIt] = "sdf8f9g7897sfdfg7"; // 获取值的方式不变 var b = folderRoots[depEYFSEn]; // 正常返回"sdfg0987897sdfga3"
方案2:升级到V8运行时(支持ES6+特性)
现在Google Apps Script已经支持Chrome V8运行时,启用后就能直接使用你原本的ES6写法。启用步骤:
- 打开脚本编辑器
- 点击顶部菜单栏的「运行」→「启用新的Apps Script运行时」
- 或者进入「项目设置」,勾选「启用Chrome V8运行时」
启用后,你原来的代码就能正常运行,还能使用箭头函数、let/const、解构赋值等更多ES6+特性,同时运行性能也会提升。
内容的提问来源于stack exchange,提问作者Riccardo
相关产品推荐
相关产品推荐

