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á 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!