for (i = 0; i < slides.length; i++) {
slides[i].style.display = "none";
}
// --------
for (let slide of slides) {
slide.style.display = "none";
}
querySelectorAll, а потом создаете новый массив на базе предыдущего. И зачем все это? Для того чтобы иметь возможность вызвать функцию forEach? Неужели это и правда оправдано выделять допольнительную память и копировать участок памяти только ради вызова красивой функции? Как по мне это не очень хорошо.
var a = 1;
var b = 1;
Console.WriteLine(a);
Console.WriteLine(b);
Console.WriteLine(a + b);