Създаване на HTML таблица от масив от обекти
Да предположим, че имаме даден някакъв масив от обекти, например, такъв масив с потребители:
let users = [
{
name: 'name1',
surname: 'surname1',
patronymic: 'patronymic1'
},
{
name: 'name2',
surname: 'surname2',
patronymic: 'patronymic2'
},
{
name: 'name3',
surname: 'surname3',
patronymic: 'patronymic3'
},
];
Нека направим от този масив HTML таблица, във всеки ред на която ще запишем данните на отделен потребител.
При такава структура на данните обикновено се стартира един цикъл по масива и се създава всяка клетка на таблицата ръчно, ето така:
<table id="table"></table>
let 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);
}
Такъв подход дава голяма гъвкавост - ние можем сами да регулираме реда на подреждане на данните в клетките на таблицата (можем, например, да разменим името и фамилията).
Освен това, при желание можем да прикачваме събития към определени клетки. Например, можем към клетка с фамилия да прикачим някакво действие при кликване и така нататък.
Даден е следният масив със служители:
let employees = [
{name: 'employee1', age: 30, salary: 400},
{name: 'employee2', age: 31, salary: 500},
{name: 'employee3', age: 32, salary: 600},
];
Изведете елементите на този масив под формата на HTML таблица.
Модифицирайте предходната задача така, че
при кликване върху която и да е клетка с възраст нейното съдържание
да се увеличава с 1.
Модифицирайте предходната задача така, че
при кликване върху която и да е клетка със заплата нейното съдържание
да се увеличава с 10%.