Utilizarea colecțiilor Map

Să presupunem că avem următoarele paragrafe:

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

Să facem ca la click pe fiecare paragraf să i se adauge la sfârșit numărul său de ordine în lista de paragrafe. Să rezolvăm problema folosind Map.

Să începem. Mai întâi, să obținem paragrafele într-o variabilă:

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

Să creăm o nouă colecție Map:

javascriptlet map = new Map;

Să umplem colecția astfel încât cheile să fie paragrafele noastre, iar valorile lor - numerele de ordine:

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

Să parcurgem paragrafele cu un ciclu și să atașăm acestora un handler pentru click:

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

Să adăugăm acum la click numărul de ordine la sfârșitul textului paragrafului. În același timp, vom obține acest număr din colecția noastră:

javascriptfor (let elem of elems) {
  elem.addEventListener('click', function() {
    this.textContent += map.get(this);
  });
}
Задание 1

Sunt date câmpurile de introducere (input). Parcurgeți aceste input-uri cu un ciclu și creați o colecție Map, în care cheile să fie input-urile, iar valoarea - numărul lor de ordine pe pagină. Faceți astfel încât la click pe orice input, în value-ul lui să se scrie numărul său de ordine.

Задание 2

Sunt date câmpurile de introducere (input). În fiecare input se poate introduce un număr. La apăsarea tastei Enter, input-ul să memoreze numărul introdus. Faceți astfel încât la pierderea focusului în input, în consolă să se afișeze array-ul cu toate numerele introduse anterior în acel input.