Оптимизация JS кода 17/27

Добрый день. Сейчас прохожу вторую часть Кекстаграма, и у меня возник вопрос, почему для удаления класса active в списке фильтров используется цикл вообще по всему списку?

for (var i = 0; i < controls.length; i++) {
    controls[i].classList.remove('active');
}

Не рациональнее ли внутри цикла создавать переменную только с теми элементами, которые имеют класс active? И сразу удалять этот класс. В таком случае достаточно использовать querySelector вместо querySelectorAll, т.к. всегда будет максимум один такой элемент.

var activeControl = document.querySelector('.toggle-controls .active');
if (activeControl) {
    activeControl.classList.remove('active');
}

@juwain, это к вам.

1 лайк

Да, вы правы, мы улучшим курс при переносе в новый интерфейс, чтобы было более наглядно и понятно.

И еще, я заметила следующее. Я долго не могла пройти финальное испытание (27 / 27), как оказалось, из-за того, что писала в коде let вместо var. Возможно, стоит как-то обрабатывать эту ситуацию, а то мне бы ни за что не пришло в голову, что ES6 не поддерживается :slight_smile:

1 лайк