Заранее хочу сказать, что я новичок и только начинаю изучать js. Нужно сделать так, чтобы из имеющихся данных выстраивалась таблица. Вот, собственно, они:
let data = [
{
"name": "tapochek 1",
"size": "35",
"isThere": "12",
"price": "1234"
},
{
"name": "tapochek 2",
"size": "37",
"isThere": "0",
"price": "4326"
},
{
"name": "tapochek 3",
"size": "15",
"isThere": "28",
"price": "1124,80"
},
{
"name": "tapochek 4",
"size": "40",
"isThere": "93",
"price": "1443"
}
];
Мне нужно сделать это с помощью ооп, но у меня никак не получается. Я просто не могу связать классы, объекты и методы с этим заданием. Я написал код, в котором ооп вообще не задействовано:
let tr1 = document.querySelector(".tr1");
let tr2 = document.querySelector(".tr2");
let tr3 = document.querySelector(".tr3");
let tr4 = document.querySelector(".tr4");
let tr5 = document.querySelector(".tr5");
for (let i = 0; i < data.length; i++) {
let firstTd = document.createElement("td");
firstTd.textContent = data[i].name;
tr1.appendChild(firstTd);
let secondTd = document.createElement("td");
secondTd.textContent = data[i].size;
tr2.appendChild(secondTd);
let thirdTd = document.createElement("td");
thirdTd.textContent = data[i].isThere;
let fourthTd = document.createElement("td");
fourthTd.textContent = data[i].price;
tr4.appendChild(fourthTd);
let fifthTd = document.createElement("td");
let fifthTdButton = document.createElement("button");
fifthTdButton.className = "plusButton";
if (data[i].isThere == "0") {
fifthTd.textContent = "Невозможно";
thirdTd.textContent = "Нет в наличии";
tr5.appendChild(fifthTd);
tr3.appendChild(thirdTd);
} else {
fifthTdButton.textContent = "+";
fifthTd.appendChild(fifthTdButton);
tr5.appendChild(fifthTd);
tr3.appendChild(thirdTd);
}
}
<table border="1">
<tr class="tr1">
<td>Имя</td>
</tr>
<tr class="tr2">
<td>Размер</td>
</tr>
<tr class="tr3">
<td>Наличие</td>
</tr>
<tr class="tr4">
<td>Цена</td>
</tr>
<tr class="tr5">
<td>Добавить в корзину</td>
</tr>
</table>
Так вот. Я хочу вас очень попросить о двух вещах:
1. В моём коде есть очень много повторяющихся частей и я не знаю, как можно оптимизировать их.
2. Я не знаю, как сделать данное задание с помощью ооп (и при этом мне известна теория, но я не могу применить её на практике).
Подскажите пожалуйста.