map()
, во вторых, где потом используется переменная park
? (в переменной будет храниться значение после последней итерации...). К тому же переменная локальная, за пределами итерации ее не будет видно. И к тому же, почему проверка на undefined
идет со второго элемента? В общем что то вы походу не то делаете...По коду можно понять, что он должен выполнять
[].forEach.call
, будет создавать объект массива, который вообще никому не нужен, следовательно просто так будет занимать память и процессорное время на создание. Конечно в данном случае это вообще почти не важно, но все таки, правильнее будет заимствовать метод у прототипа класса. В данном случае следовало бы написать Array.prototype.forEach.call();
// В данном случае просто вызывается метод в другом контексте и не создается никакого лишнего объекта.
. Но на данный момент у NodeList (коллекция узлов возвращаемая методом querySelectorAll()) есть собственный метод forEach()
, следовательно его можно просто вызывать у коллекции, ни у кого не заимствуя его. Тут главное понять что конкретно метод возвращает...Далее будет понятно как работать с данными querySelectorAll();
возвращается массив из элементов класса Node, следовательно для того чтобы повесить на каждый узел обработчик события, в данном случае click
, необходимо перебрать весь массив в цикле, что собственно вы и написали. В общем то не понимаю в чем у вас проблема, вы задали вопрос и сами же на него ответили // Это все что нужно знать об AJAX в общем случае...
const xhr = new XMLHttpRequest(); // 1. Создаем объект запроса
xhr.open("POST", "https://site.com/something"); // 2. Настраиваем запрос
xhr.onload = () => { // 4. Ждем пока придут данные с сервера
// 5. Делаем что то
};
xhr.send(data); // 3. Отправляем данные на сервер
cc = document.getElementById(context[i]);
на это const cc = document.querySelector(`#${context[i]}`);
сс
объявлена глобально, следовательно все используют одно и то же значение. В итоге после цикла у вас в переменной будет только последний элемент. Вам же нужно сделать для каждой итерации цикла свою переменную. В данном случае решается это объявлением переменной с помощью let
или const
public boolean has(int key) { // Метод для проверки существования элемента например в списке
boolean found = false; // Флаг, найден ли элемент или нет. По умолчанию не найден (false)
if (find(key)) found = true; // Ищем элемент. Если находим то выставляем значение флага в true
return found; // Возвращаем значение флага
}
Вот это рекомендую. Лучше материала для самостоятельного изучения я пока что не видел.
За 2-3 месяца можно пройти весь плейлист.
PS. Заниматься нужно по 3 часа в день а не в неделю. По 3 часа в неделю вы будете пол жизни изучать его до более менее свободного владения.
Уделите хотя бы 2 часа в день. На том канале который я указал выше, уроки примерно по 1 часу (2 видео: теория и практика). Проходите хотя бы один утром, один вечером. В итоге через 3 месяца +- будете неплохо владеть английским. По крайней мере читать точно сможете без проблем, хотя и говорить и понимать более менее скорее всего тоже будете, если не будете лениться.