#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 });