向 Array.from() 添加条件语句

Adding conditional statement to Array.from()

我有以下代码,

AllDays= Array.from(moment.range(startDate, endDate).by('day')).map(day => day.format('YYYY-MM-DD'));

我想给它添加一个条件,这样如果选择了开始 - 结束范围内的给定日期,它就不会包含在生成的数组中。

所以说范围是1st-4th,我想指定如果它的3rd不包含在数组中。

我可以通过在数组 AFTERWARDS 上循环并删除日期来做到这一点,但想知道是否有办法从内部做到这一点?

只是 slice0length - 1 的元素:

this['moment-range'].extendMoment(moment);

let startDate = '2022-04-01';
let endDate = '2022-04-04';

let allDays = Array.from(moment.range(startDate, endDate).by('day')).map(day => day.format('YYYY-MM-DD')).slice(0,-1);

console.log(allDays /* except the last */);
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.29.2/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-range/4.0.2/moment-range.js"></script>

const datesToRemove = new Set(ArrayOfDatesToRemove);
AllDays = AllDays.filter(date => !datesToRemove.has(date));

我能够使用过滤器解决这个问题