Advertisement
kstoyanov

07. Furniture

Oct 1st, 2020
119
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.   document
  3.     .getElementsByTagName('button')[0]
  4.     .addEventListener('click', generate);
  5.  
  6.   document
  7.     .getElementsByTagName('button')[1]
  8.     .addEventListener('click', buy);
  9.  
  10.   function generate(e) {
  11.     const objects = JSON.parse(
  12.       document
  13.         .getElementsByTagName('textarea')[0]
  14.         .value,
  15.     );
  16.     objects.forEach((obj) => { objectGenerator(obj); });
  17.   }
  18.  
  19.   function objectGenerator(obj) {
  20.     const trElement = document.createElement('tr');
  21.     const imgElementTd = document.createElement('td');
  22.  
  23.     imgElementTd.innerHTML = `<img src="${obj.img}">`;
  24.  
  25.     document
  26.       .getElementsByTagName('tbody')[0]
  27.       .appendChild(trElement);
  28.  
  29.     trElement.appendChild(imgElementTd);
  30.  
  31.     const nameElementTd = document.createElement('td');
  32.     const nameElementP = document.createElement('p');
  33.  
  34.     nameElementP.textContent = obj.name;
  35.     nameElementTd.appendChild(nameElementP);
  36.     trElement.appendChild(nameElementTd);
  37.  
  38.     const priceElementP = document.createElement('p');
  39.     priceElementP.textContent = obj.price;
  40.  
  41.     const priceElementTd = document.createElement('td');
  42.     priceElementTd.appendChild(priceElementP);
  43.  
  44.     trElement.appendChild(priceElementTd);
  45.  
  46.     const decFactorElement = document.createElement('td');
  47.     const decFactorElementP = document.createElement('p');
  48.  
  49.     decFactorElementP.textContent = obj.decFactor;
  50.  
  51.     decFactorElement.appendChild(decFactorElementP);
  52.     trElement.appendChild(decFactorElement);
  53.  
  54.     const checkBoxTd = document.createElement('td');
  55.     checkBoxTd.innerHTML = '<input type="checkbox">';
  56.  
  57.     trElement.appendChild(checkBoxTd);
  58.   }
  59.  
  60.   function buy(e) {
  61.     const boughtFurniture = [];
  62.     let totalPrice = 0;
  63.     let avgDecFactor = 0;
  64.     let count = 0;
  65.  
  66.     const allTr = Array.from(document.getElementsByTagName('tr'));
  67.  
  68.     for (let i = 2; i < allTr.length; i++) {
  69.       if (allTr[i].children[4].children[0].checked) {
  70.         count += 1;
  71.         boughtFurniture.push(allTr[i].children[1].textContent);
  72.         totalPrice += +allTr[i].children[2].textContent;
  73.         avgDecFactor += +allTr[i].children[3].textContent;
  74.       }
  75.     }
  76.  
  77.     avgDecFactor /= (count);
  78.  
  79.     document
  80.       .getElementsByTagName('textarea')[1]
  81.       .value = `Bought furniture: ${
  82.         boughtFurniture.join(', ')
  83.       }\nTotal price: ${
  84.         totalPrice.toFixed(2)
  85.       }\nAverage decoration factor: ${
  86.         avgDecFactor}`;
  87.   }
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement