繁体   English   中英

array.filter不返回数组

[英]array.filter not returning array

我正在尝试使用日期列搜索大量数据,以返回具有我需要的日期的科目数组。 我无法使数组填充任何数据。 我想念什么?

var accounts = accountInfo.getRange('A2:AJ').getValues();
var maxRow = accountInfo.getMaxRows();
var today = new Date();
today.setHours(0,0,0,0);
var todayPlus5 = addDays(today, 5);

function reviewPriorityFilter(){
  var filtered = accounts.filter(rowNumber2);
  accounts = filtered;
  Logger.log(filtered);
}

function rowNumber2(value){
  var fix = new Date(value[15]);
  fix.setHours(0,0,0,0);
  return fix === todayPlus5;
}

function addDays(date, days){
  var result = new Date(date);
  result.setDate(result.getDate() + days);
  return result;
}

您不能使用===比较新的对象实例。 new创建的两个对象永远不会彼此=== ,即使它们具有相同的“值”,例如相同的内部日期。 这个问题显示了检查确切日期匹配的正确方法:

date1.getTime() === date2.getTime()

因此,您的rowNumber2过滤器应返回类似以下内容的内容:

return fix.getTime() === todayPlus5.getTime();

请记住,这仅在时间完全匹配时才有效。 如果过滤器仍然显示一个空值,请记录两个日期以查看它们是否确实具有完全相同的时间。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM