Nesse caso, o hoje está recebendo o valor padrão do Date, por exemplo, se der um console.log(hoje);
ele vai mostrar:
Mon Jul 19 2021 22:15:05 GMT-0300 (Brasilia Standard Time)
Para comparar com o formato que você está utilizando que é o nosso, 'DD/MM/AAAA' vai precisar formatar no JavaScript também, que mesmo puxando só esses dados, ele vai trazer no formato padrão: 'YYYY-MM-DD'.
Você pode formatá-la conforme abaixo, aí sim poder comparar no teu if:
let hoje = new Date()
let data_formatada = ((hoje.getDate() )) + "/" + ((hoje.getMonth() + 1)) + "/" + hoje.getFullYear();
console.log(hoje);
console.log(data_formatada);
Se for trabalhar com esse padrão dela formatada, aconselho a tirar o '0' da frente, exemplo: '9/7/2021' e também manter uma função pra retornar a data formatada.
Beleza, agora para comparar com o array, só corrigir o seu if que ai o código fica assim:
let hoje = new Date()
let dataFormatada = ((hoje.getDate() )) + "/" + ((hoje.getMonth() + 1)) + "/" + hoje.getFullYear();
console.log(dataFormatada);
console.log(hoje);
const feriados = ['25/12/2022','15/11/2022','02/11/2022','12/10/2022','07/09/2022','16/06/2022','01/05/2022','21/04/2022','15/04/2022','01/03/2022','28/02/2022','01/01/2022','31/12/2021','25/12/2021','15/11/2021','02/11/2021','12/10/2021','07/09/2021','31/08/2021','03/06/2021','01/05/2021','21/04/2021','02/04/2021','16/02/2021','15/02/2021','01/01/2021', '06/07/2021'];
if(feriados.indexOf(dataFormatada) != -1) {
console.log("foi");
}
else{
console.log("não foi");
}
O array.indexOf vai retornar -1 caso não encontre, por isso faz o (feriados.indexOf(dataFormatada) != -1)
, quando for diferente de -1 é por que encontrou.
Att.