向 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 上循环并删除日期来做到这一点,但想知道是否有办法从内部做到这一点?
只是 slice 从 0
到 length - 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));
我能够使用过滤器解决这个问题
我有以下代码,
AllDays= Array.from(moment.range(startDate, endDate).by('day')).map(day => day.format('YYYY-MM-DD'));
我想给它添加一个条件,这样如果选择了开始 - 结束范围内的给定日期,它就不会包含在生成的数组中。
所以说范围是1st-4th,我想指定如果它的3rd不包含在数组中。
我可以通过在数组 AFTERWARDS 上循环并删除日期来做到这一点,但想知道是否有办法从内部做到这一点?
只是 slice 从 0
到 length - 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));
我能够使用过滤器解决这个问题