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

Google Sheets Apps Script FILTER返回空数组导致下拉列表无数据问题

问题原因

你遇到的filter返回空数组的核心原因是日期对象的比较逻辑错误:
Google Sheets中设置为日期格式的单元格,通过getValue()方法获取到的值是JavaScript的Date对象。直接用==或===比较两个Date对象时,实际比较的是对象的内存引用地址,而非日期的实际数值。哪怕两个Date对象代表的年月日完全一致,只要是不同的实例,比较结果都会是false,因此筛选不到匹配条目。

修复方案

将两个日期统一转为可直接比较的数值(时间戳)或格式化字符串即可解决问题,推荐修改filter判断逻辑如下:

var prodTypeList = MainData.filter(function(item){
  // 把两个日期都转为毫秒级时间戳,比较数值即可判断是否为同一天
  return new Date(item[0]).getTime() === new Date(prodDate).getTime() && item[1] === machine; 
})

如果你的日期列存在时分秒数据,只需比较年月日的话,可以用以下方法把时间部分清零后再比较:

// 提取日期的0点时间戳,忽略时分秒
function getPureDateStamp(inputDate) {
  const d = new Date(inputDate);
  return new Date(d.getFullYear(), d.getMonth(), d.getDate()).getTime();
}

// filter内修改为
return getPureDateStamp(item[0]) === getPureDateStamp(prodDate) && item[1] === machine;

内容的提问来源于stack exchange,提问作者Rock

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 14:15:08