การสร้างตาราง HTML จากอาร์เรย์ของอ็อบเจกต์

สมมติว่าเรามีอาร์เรย์ของอ็อบเจกต์ ตัวอย่างเช่น อาร์เรย์ของผู้ใช้ดังต่อไปนี้:

javascriptlet users = [
  {
    name: 'name1',
    surname: 'surname1',
    patronymic: 'patronymic1'
  },
  {
    name: 'name2',
    surname: 'surname2',
    patronymic: 'patronymic2'
  },
  {
    name: 'name3',
    surname: 'surname3',
    patronymic: 'patronymic3'
  },
];

ลองทำตาราง HTML จากอาร์เรย์นี้กัน ในแต่ละแถวของตารางจะบันทึกข้อมูลของผู้ใช้แต่ละคน

ด้วยโครงสร้างการจัดเก็บข้อมูลแบบนี้ มักจะ รันลูปหนึ่งครั้งผ่านอาร์เรย์และสร้าง แต่ละเซลล์ของตารางด้วยมือ ดังนี้:

html<table id="table"></table>
javascriptlet table = document.getElementById('table');

for (let user of users) {
  let tr = document.createElement('tr');
  
  let td1 = document.createElement('td');
  td1.textContent = user.name;
  tr.appendChild(td1);
  
  let td2 = document.createElement('td');
  td2.textContent = user.surname;
  tr.appendChild(td2);
  
  let td3 = document.createElement('td');
  td3.textContent = user.patronymic;
  tr.appendChild(td3);
  
  table.appendChild(tr);
}

วิธีการนี้ให้ความยืดหยุ่นสูง - เราสามารถ ควบคุมลำดับการจัดวางข้อมูล ในเซลล์ตารางได้ด้วยตัวเอง (เราสามารถ สลับที่กัน ระหว่างชื่อและนามสกุลได้)

นอกจากนี้ หากต้องการ เราสามารถติดตั้ง อีเวนต์บนเซลล์เฉพาะบางเซลล์ได้ ตัวอย่างเช่น สามารถติดตั้งการกระทำบางอย่างเมื่อคลิกบนเซลล์ที่มีนามสกุล เป็นต้น

Задание 1

กำหนดอาร์เรย์ของพนักงานดังต่อไปนี้:

javascriptlet employees = [
  {name: 'employee1', age: 30, salary: 400},
  {name: 'employee2', age: 31, salary: 500},
  {name: 'employee3', age: 32, salary: 600},
];

แสดงองค์ประกอบของอาร์เรย์นี้ในรูปแบบ ตาราง HTML

Задание 2

ปรับเปลี่ยนโจทย์ก่อนหน้าเพื่อให้ เมื่อคลิกที่เซลล์ใดก็ตามที่มีอายุ เนื้อหาในเซลล์นั้น เพิ่มขึ้น 1

Задание 3

ปรับเปลี่ยนโจทย์ก่อนหน้าเพื่อให้ เมื่อคลิกที่เซลล์ใดก็ตามที่มีเงินเดือน เนื้อหาในเซลล์นั้น เพิ่มขึ้น 10%