АКЦИЯ: бесплатные месячные курсы по созданию сайтов
на выбор: верстка, JavaScript, PHP или фреймворки. Сегодня последний день для записи! Жми!
⊗jsSpMpAp 36 of 294 menu
Бесплатная Тренировка Верстки. Приглашаются желающие поверстать!

Применение коллекций Map

Пусть у нас есть абзацы:

<p>aaa</p> <p>bbb</p> <p>ccc</p> <p>ddd</p> <p>eee</p>

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

Приступим. Для начала получим наши абзацы в переменную:

let elems = document.querySelectorAll('p');

Создадим новую коллекцию Map:

let map = new Map;

Заполним нашу коллекцию так, чтобы ключами были наши абзацы, а их значениями - порядковые номера:

let i = 1; for (let elem of elems) { map.set(elem, i++); }

Переберем абзацы циклом и повесим на них обработчик клика:

for (let elem of elems) { elem.addEventListener('click', function() { }); }

Давайте теперь по клику будем добавлять порядковый номер в конец текста абзаца. При этом будем получать этот номер из нашей коллекции:

for (let elem of elems) { elem.addEventListener('click', function() { this.textContent += map.get(this); }); }

Даны инпуты. Переберите эти инпуты циклом и создайте коллекцию Map, ключами в которой будут инпуты, а значением - их порядковый номер на странице. Сделайте так, чтобы по клику на любой инпут ему в value записывался его порядковый номер.

Даны инпуты. В каждый инпут можно ввести число. Пусть по нажатию на Enter инпут запоминает введенное число. Сделайте так, чтобы по потери фокуса в инпуте в консоль выводился массив всех введенных ранее в инпут чисел.

enru