Вопрос по переменной relatedList, которая содержит массив элементов:
Если в функцию relatedNavUpdate() передать конкретный элемент, то как правильно его преобразовать в массив?
Из-за того, что relatedList при разных el будет разного типа - либо массив, либо NodeList, вам будут недоступны некоторые полезные методы для работы с массивами в случае с NodeList. Потому желательно еще вот так сделать [...main.querySelectorAll('.products-wrapper')]
Станислав Шабалин, ну, если не планируется как-то иначе манипулировать элементами, а нужен просто перебор, то можно и без трансформации в массив. Но если бы вам необходимо было еще использовать методы filter map reduce pop и тд, тогда да. Я всегда по привычке конвертирую для однообразия :)
P.S.
:D :D Только что обнаружил возможность запускать функции прямо в параметрах. Не совсем ваш кейс, но фича забавная.
function relatedNavUpdate(el = main.querySelectorAll('.products-wrapper') {
el.forEach( (e) => {
var ul = e.querySelector('ul.products'),
...