如何统计含空值的日期数组中未来日期的数量?
统计数组中未来日期的数量
嘿,这问题很好解决!咱们一步步处理你这个带null值的日期数组,统计出其中未来日期的总数:
核心思路
- 先过滤掉数组里的
null(以及其他无效假值) - 将有效的日期字符串转换成
Date对象 - 对比每个日期是否晚于当前时间
- 统计符合条件的日期数量
完整代码示例
// 你的日期数组 const dates = [ "2018-04-02T15:15", "2018-04-07T14:20", "2018-04-28T11:50", null, null, null, null, "2018-05-30T17:45", "2018-04-07T16:20" ]; // 获取当前时间的Date对象 const currentTime = new Date(); // 统计未来日期数量 const futureDateCount = dates.filter(date => { // 第一步:跳过null和其他假值 if (!date) return false; // 第二步:把字符串转成Date对象,同时校验转换是否有效 const dateObj = new Date(date); if (!(dateObj instanceof Date) || isNaN(dateObj)) { return false; } // 第三步:判断是否是未来日期 return dateObj > currentTime; }).length; console.log(futureDateCount); // 输出符合条件的数量
代码细节说明
- 过滤无效值:
if (!date)会直接跳过null、空字符串等假值,避免后续日期转换出错 - 日期有效性校验:如果遇到格式不标准的日期字符串,
new Date()会返回Invalid Date,用isNaN(dateObj)可以检测这种情况,确保只处理有效的日期 - 时间对比:
Date对象可以直接用比较运算符(>)对比,本质是比较它们的时间戳(从1970年至今的毫秒数)
如果你的数据源能保证所有非null的字符串都是有效日期格式,还可以简化代码,牺牲一点健壮性换简洁:
const futureDateCount = dates.filter(date => date && new Date(date) > new Date()).length;
内容的提问来源于stack exchange,提问作者nicogaldo
相关产品推荐
相关产品推荐

