#javascript #momentjs
Вопрос:
Я хочу получить массив следующих семи дней, включая текущий, в массиве, используя moment.js, Я почти заставил его работать, но есть проблема, следующий день после первого (текущий день) по какой-то причине пропускается.
Так что, если сегодня пятница, суббота будет пропущена (не отображается в моем последнем массиве), а остальные дни хороши.
Мой метод построения массива:
const getNext7Days = () =>
{
let days = [];
let finalDays = [];
let daysRequired = 7
for (let i = 1; i <= daysRequired; i ) {
if(i==1)
{
days.push( moment().format('dddd, D MMMM YYYY') )
}
else
{
days.push( moment().add(i, 'days').format('dddd, D MMMM YYYY') )
}
}
//Alert.alert(' ' days.length);
for (let x = 0; x < days.length; x )
{
var dayId = moment(days[x],'dddd, D MMMM YYYY').day();
var dayLetter = moment(days[x],'dddd, D MMMM YYYY').format('dddd');
var dayNumber = moment(days[x],'dddd, D MMMM YYYY').format('Do');
finalDays.push({ dayId:dayId, dayLetter:dayLetter, dayNumber:dayNumber });
}
console.log(finalDays);
setDays(finalDays);
};
Ответ №1:
В первом цикле вы начинаете i = 1, поэтому первая итерация-это текущий день, вторая итерация добавляет 2 дня (i = 2). Начните с i = 0, и вы должны делать то, что хотите.