Проблема получения следующих семи дней с moment.js

#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, и вы должны делать то, что хотите.