我创建了一个 dateRange,它是一个日期数组。
然后我有一个日期数组,比如 0 代表星期日,1 代表星期一等等......
现在我想根据 visibleWeekDays 数组获取所有 dateRange 日期。
解决方案在 getVisibleDateRange 函数中。
但我想用 LINQ 来做,因为为什么要重新发明轮子......
内部或外部选择器仍然需要一个 .day() ,因为其中一个选择器是一个 momentJS 对象。
但是要获得星期几,我需要将“.day()”放入无法工作的 linqJS 字符串中......
linqJS 的解决方案是什么?
// Arrange
var startDate = moment(new Date(2014, 1, 1));
var endDate = moment(new Date(2014, 1, 15));
var visibleWeekDays = [0,1]
// Act
var dates = dateFactory.dateRange(startDate, endDate);
var visibleDays = dateFactory.getVisibleDateRange(visibleWeekDays ,dates);
function getVisibleDateRange(visibleWeekDays, dateRange) {
var visibleDateRange = [];
for (var i = 0; i < dateRange.length; i++) {
for (var j = 0; j < visibleWeekDays.length; j++) {
var currentDate = dateRange[i];
var dayOfWeek = currentDate.day();
var visibleDayOfWeek = visibleWeekDays[j];
if (visibleDayOfWeek === dayOfWeek) {
visibleDateRange.push(currentDate);
}
}
}
return visibleDateRange;
}
var visibleDateRange = Enumerable.from(visibleWeekDays).join(dateRange,"","","outer,inner=>outer + ':' + inner")