Google Scripts中如何智能声明枚举类常量,无需逐个手动赋值?
自动生成列索引常量的实用方法
在JavaScript/Google Script里确实没有原生的enum类型,你之前尝试在对象字面量里引用同对象的属性自动赋值会报错,是因为对象初始化阶段,内部属性还未完成定义,无法互相引用。这里给你两种能自动赋值的方案,既省事又易维护:
方法一:数组转对象(最易扩展)
先把所有列名按顺序放进数组,再通过遍历生成带索引的对象。新增列时只需在数组里加字段名,索引会自动按顺序生成(适配电子表格从1开始的列号,所以索引值加1):
const COLUMN_NAMES = ['FIRST_NAME', 'LAST_NAME', 'ADDRESS']; const COLUMNS_INDEXES = {}; COLUMN_NAMES.forEach((columnName, idx) => { COLUMNS_INDEXES[columnName] = idx + 1; });
方法二:自执行函数初始化
用立即执行函数创建一个自增计数器,给每个属性自动赋值。插入新列时,直接在对象里新增一行属性即可,后续数值会自动顺延:
const COLUMNS_INDEXES = (() => { let currentIndex = 1; return { FIRST_NAME: currentIndex++, LAST_NAME: currentIndex++, ADDRESS: currentIndex++ // 新增列直接加在这里:MIDDLE_NAME: currentIndex++, }; })();
这两种方法都能避免手动逐个设置数值,后续调整列顺序或新增列时,不用修改所有索引值,既减少出错概率又提升代码可维护性。
内容的提问来源于stack exchange,提问作者il_mix
相关产品推荐
相关产品推荐

