Google Apps Script 如何查找数组中特定值对应的列号
问题分析
你当前的代码存在3处核心错误:
- 循环边界取值错误:
dateArrayD是1行结构的二维数组,dateArrayD.length取到的是行数(固定为1),遍历所有列需要取第一行的长度dateArrayD[0].length - 判断逻辑写反:现有代码是日期不匹配时给
dateCol赋值,和需求完全相反 - 没有终止逻辑:匹配到目标值后继续遍历会浪费性能,且如果存在重复值会导致
dateCol被后序结果覆盖
修正后的代码
// 初始化列号为-1,可用于后续判断是否找到匹配项 var dateCol = -1; // 遍历第一行的所有列 for(var z = 0; z < dateArrayD[0].length; z++){ if(dateTodayD === dateArrayD[0][z]){ dateCol = z; // 匹配到后直接退出循环 break; } }
补充说明
- 后续可以通过
dateCol !== -1的判断,确认是否找到了匹配的日期列 - 要确保
dateTodayD和dateArrayD里的日期格式化规则完全一致,比如前导零、分隔符完全统一,避免因为字符串格式差异导致匹配失败
内容的提问来源于stack exchange,提问作者Vidomina Sangre
相关产品推荐
相关产品推荐

