การใช้งานคอลเลกชัน Map

สมมติว่าเรามีย่อหน้า:

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

มาทำให้เมื่อคลิกที่แต่ละย่อหน้า ตัวเลขลำดับของมันในรายการย่อหน้าถูกเขียนต่อท้าย ลองแก้ปัญหาด้วย Map

เริ่มกันเลย ขั้นแรกให้ได้ย่อหน้าของเรา มาไว้ในตัวแปร:

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

สร้างคอลเลกชัน Map ใหม่:

javascriptlet map = new Map;

เติมคอลเลกชันของเรา โดยให้คีย์ เป็นย่อหน้าของเรา และค่าเป็นตัวเลขลำดับ:

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

วนย่อหน้าด้วยลูปและติดตั้ง ตัวจัดการการคลิกให้กับพวกมัน:

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

ตอนนี้เมื่อคลิก เราจะเพิ่มตัวเลขลำดับ ต่อท้ายข้อความของย่อหน้า โดยจะ รับตัวเลขลำดับนี้จากคอลเลกชันของเรา:

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

มีอินพุต ให้วนอินพุตเหล่านี้ด้วยลูป และสร้างคอลเลกชัน Map ซึ่งคีย์ ในนั้นจะเป็นอินพุต และค่าเป็น ตัวเลขลำดับบนหน้า ทำให้ เมื่อคลิกที่อินพุตใดๆ ก็ตาม ค่า value ของมันจะถูกบันทึกด้วยตัวเลขลำดับของมัน

Задание 2

มีอินพุต ในแต่ละอินพุตสามารถป้อน ตัวเลขได้ ให้เมื่อกด Enter อินพุต จำตัวเลขที่ป้อนไว้ ทำให้เมื่ออินพุตเสียโฟกัส ในคอนโซลจะแสดงอาร์เรย์ของตัวเลขทั้งหมดที่เคยป้อนในอินพุตนั้นมาก่อน