Как создать массив чисел дней недели (т.Е. 0 для воскресенья, 1 для понедельника и т.д.) через 7 дней от текущей даты в javascript?

#javascript

#javascript

Вопрос:

Название может сбивать с толку, поэтому я подробнее объясню здесь. Я хочу создать массив, содержащий день недели каждого дня, например, от 2-7 дней с текущей даты. Заданное начальное число — это просто целое число от 0 до 6, соответствующее дням недели.

Пример 1:

Текущий день недели: вывод 0 (воскресенье)
: [2, 3, 4, 5, 6, 0, 1]

Пример 2:

Текущий день недели: 3 (среда)
Выходной: [5, 6, 0, 1, 2, 3, 4]

Использование этого заключается в том, чтобы затем преобразовать эти числа в фактические названия дней и использовать их для отображения некоторых данных.

Ответ №1:

Чтобы получить массив дней, вы можете использовать приведенную ниже функцию

 function getDays(num) {
    const arr = [];
    for (let i = 2; i <= 8; i  ) {
        arr.push((num   i) % 7);
    }
    return arr;
}


  

И чтобы получить день, соответствующий числу, вы можете использовать эту функцию

 function getDay(num) {
    const days = ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
    return days[num];
}
  

Объединив эти два, чтобы получить желаемый результат

 const days = getDays(0); // [2, 3, 4, 5, 6, 0, 1];
const displayNames = days.map(getDay); // ["Tuesday", "Wednesday", "Thursday", "Friday", "Saturday", "Sunday", "Monday"]
  

Ответ №2:

Прежде всего, вам нужен сегодняшний индекс:

 const date = new Date();
const todayIndex = date.getDay();
console.log(todayIndex);  

Затем вы можете просто добавить сегодняшний индекс к каждому числу в диапазоне 0-7 и использовать оператор modulo, чтобы убедиться, что вы остаетесь в пределах этого диапазона:

 const todayIndex = new Date().getDay();
const ans = [...Array(7).keys()].map(x => (x   todayIndex) % 7);

console.log({ todayIndex, ans });