我需要使用moment()获得每周包含7天的数组,但是将对象推送到数组会替换整个数组。
const start = moment().clone().startOf('month').startOf('week');
const end = start.clone().add(6, 'week').subtract(1, 'day');
const weeks = [];
let days = [];
for (let day = start; day.isSameOrBefore(end); day.add(1, 'day')) {
days.push({
date: day.date()
});
if (day.clone().endOf('isoWeek')) {
weeks.push(days);
days = [];
}
}
console.log(weeks);
weeks.length应该是6,但它是42。
示例代码:
答案 0 :(得分:1)
问题是moment().endOf('isoWeek')
将时刻改为一周末,而不是返回布尔值,因此day.clone().endOf('isoWeek').diff(day, 'days') === 0
正常工作