12 de outubro de 2021 • 1 min de leitura
Segue abaixo um exemplo de como gerar um array com os dias da semana.
const getWeekDays = () => {
const currentDate = new Date()
return Array.from({length: 7}).map((_,index) => {
const first = currentDate.getDate() - currentDate.getDay() + index
return new Date(currentDate.setDate(first)).toISOString().slice(0, 10)
})
}
console.log(getWeekDays())
// [ '2021-10-10', '2021-10-11', '2021-10-12', '2021-10-13', '2021-10-14', '2021-10-15', '2021-10-16' ]Vamos à lógica:
currentDate.map para percorrer o array, pego o dia atual e subtraio com o valor do dia atual + o índice do array.Exemplo:
Se o currentDate for 11 e o índice for 0, o resultado será 10, Domingo.
Se o currentDate for 11 e o índice for 1, o resultado será 11, Segunda.
Se o currentDate for 11 e o índice for 2, o resultado será 12, Terça.
E assim por diante.
new Date(currentDate.setDate(first)) para pegar a data e utilizo o .toISOString().slice(0, 10) para retornar ela no formato YYYY-MM-DD.