You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 15:27:05