Advertisement
Kamend1

6.Furniture shop

Mar 27th, 2025
307
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.  
  3.     let tableBody = document.getElementsByTagName('tbody')[0];
  4.     let inputSubmit = document.getElementById('input').querySelector('input[type="submit"');
  5.     let checkBoxes = document.querySelectorAll('input[type="checkbox"]');
  6.  
  7.     for (let checkBox of checkBoxes) {
  8.         checkBox.disabled = false;
  9.     }
  10.  
  11.     inputSubmit.addEventListener('click', function (e) {
  12.         e.preventDefault();
  13.         generateFurniture();
  14.     })
  15.  
  16.     function generateFurniture() {
  17.         let input = document.getElementById('input').querySelector('textarea').value;
  18.         let inputArray = JSON.parse(input);
  19.        
  20.         for (let object of inputArray) {
  21.         let image = object.img;
  22.         let newImage = document.createElement('img');
  23.         newImage.src = image;
  24.        
  25.         let name = object.name;
  26.         let newName = document.createElement('p');
  27.         newName.textContent = name;
  28.  
  29.         let price = object.price;
  30.         let newPrice = document.createElement('p');
  31.         newPrice.textContent = price;
  32.  
  33.         let decFactor = object.decFactor;
  34.         let newDecFactor = document.createElement('p');
  35.         newDecFactor.textContent = decFactor;
  36.  
  37.         let newRow = document.createElement('tr');
  38.         let imageCell = document.createElement('td');
  39.         imageCell.appendChild(newImage);
  40.         newRow.appendChild(imageCell);
  41.  
  42.         let nameCell = document.createElement('td');
  43.         nameCell.appendChild(newName);
  44.         newRow.appendChild(nameCell);
  45.  
  46.         let priceCell = document.createElement('td');
  47.         priceCell.appendChild(newPrice);
  48.         newRow.appendChild(priceCell);
  49.        
  50.         let decFactorCell = document.createElement('td');
  51.         decFactorCell.appendChild(newDecFactor);
  52.         newRow.appendChild(decFactorCell);
  53.  
  54.         let chechBoxCell = document.createElement('td');
  55.         let newCheckInput = document.createElement('input');
  56.         newCheckInput.type = 'checkbox';
  57.         newCheckInput.disabled = false;
  58.         chechBoxCell.appendChild(newCheckInput);
  59.         newRow.appendChild(chechBoxCell);
  60.  
  61.         tableBody.appendChild(newRow);
  62.         }
  63.     }
  64.    
  65.     let shopSubmit = document.getElementById('shop').querySelector('input[type="submit"'); 
  66.     shopSubmit.addEventListener('click', function (e) {
  67.         e.preventDefault();
  68.         generateOutput();
  69.     })
  70.  
  71.     function generateOutput() {
  72.         let tableRows = Array.from(document.querySelectorAll('tbody tr'));
  73.         let boughtFurniture = [];
  74.         let totalPrice = 0;
  75.         let totalDecFactor = 0;
  76.  
  77.         for (let row of tableRows) {
  78.             let checkBox = row.querySelector('td:last-child input[type="checkbox"]')
  79.             if (checkBox.checked) {
  80.                 totalPrice += Number(row.querySelector('td:nth-of-type(3) p').textContent);
  81.                 totalDecFactor += Number(row.querySelector('td:nth-of-type(4) p').textContent);
  82.                 boughtFurniture.push(row.querySelector('td:nth-of-type(2) p').textContent);
  83.             }
  84.         }
  85.  
  86.         let avgDecFactor = (totalDecFactor / boughtFurniture.length);
  87.         let shopTextArea = document.getElementById('shop').querySelector('textarea');
  88.  
  89.         let result = `Bought furniture: ${boughtFurniture.join(', ')}\nTotal price: ${totalPrice}\nAverage decoration factor: ${avgDecFactor}`
  90.         shopTextArea.value = result;
  91.     }
  92.  
  93. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement