Olá devs, tudo bem? Queria saber se ao invés de usar o let video of videos poderia ser usado o forEach? É possível?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Olá devs, tudo bem? Queria saber se ao invés de usar o let video of videos poderia ser usado o forEach? É possível?
Olá, João. Tudo bem?
Sim, é possível usar o método forEach() em vez de um loop for...of nesse caso. O método forEach() é uma maneira alternativa de iterar sobre os elementos de um array ou de uma coleção semelhante a um array, como o NodeList retornado pelo querySelectorAll().
Aqui está como você pode usar forEach() para realizar a mesma tarefa de filtragem:
function filtrarPesquisa(){
const videos = document.querySelectorAll(".videos__item");
if(barraDePesquisa.value != ""){
videos.forEach(video => {
let titulo = video.querySelector(".titulo-video").textContent.toLowerCase();
let valorFiltro = barraDePesquisa.value.toLowerCase();
if(!titulo.includes(valorFiltro)){
video.style.display = "none";
} else {
video.style.display = "block";
}
});
}
}
Nesse código, videos.forEach(video => { ... }) itera sobre cada elemento em videos, executando a função de callback para cada elemento. Dentro da função de callback, você tem acesso a cada video individualmente, onde pode realizar sua lógica de filtragem, exatamente como no loop for...of.
Ambas as abordagens são válidas e funcionarão da mesma maneira neste contexto. A escolha entre elas geralmente é uma questão de preferência de estilo ou de conveniência em situações específicas.
Caso tenha ficado alguma dúvida em relação ao código, curso ou atividade, sinta-se à vontade em comunicar, estou à disposição e ficarei super feliz em poder ajudar!
Um forte abraço e bons estudos!