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

如何在JavaScript日期数组中筛选周末并统计数量

如何统计日期数组中的周末数量并提取周末日期

你的代码已经正确实现了需求,运行后会得到你期望的输出结果。先确认每个日期对应的星期:

  • 2022-11-21:周一(getUTCDay()返回1)
  • 2022-11-22:周二(返回2)
  • 2022-11-24:周四(返回4)
  • 2022-11-26:周六(返回6)

只有最后一个日期属于周末,代码会将它推入whenIsWeekend数组,最终输出完全符合预期。

原代码验证

运行你提供的代码,控制台会输出:

isWeekend false
isWeekend false
isWeekend false
isWeekend true
array of Weekend [ '2022-11-26' ]
count weekends 1

更简洁的实现方式

可以使用数组的filter方法简化代码,直接得到周末数组后,通过数组长度获取数量:

const attendanceDates = [
  "2022-11-21",
  "2022-11-22",
  "2022-11-24",
  "2022-11-26"
];

// 过滤出周末日期
const weekendDates = attendanceDates.filter(dateStr => {
  const day = new Date(dateStr).getUTCDay();
  return day === 0 || day === 6; // 0=周日,6=周六
});

console.log('array of Weekend', weekendDates);
console.log('count weekends', weekendDates.length);

这段代码逻辑和原代码一致,但更简洁,filter方法会自动遍历数组并返回符合条件的元素组成的新数组。

注意事项

  • 使用getUTCDay()时要注意时区问题,如果你的日期是本地时区的日期,可改用getDay()(同样0代表周日,6代表周六),避免时区转换导致的星期判断错误。
  • 确保日期字符串格式是浏览器能正确解析的(比如YYYY-MM-DD是标准格式,大部分环境都支持)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 20:45:44