Advertisement
nikolayneykov

Untitled

May 21st, 2019
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve () {
  2.   let [input, output] = Array.from(document.querySelectorAll('textarea'))
  3.   let [generate, buy] = Array.from(document.querySelectorAll('button'))
  4.   let tbody = document.querySelector('tbody')
  5.  
  6.   generate.addEventListener('click', function () {
  7.     let furnitureData = JSON.parse(input.value)
  8.  
  9.     furnitureData.forEach(data => {
  10.       let [tdImage, tdName, tdPrice, tdDecFactor, tdMark] = Array.from(
  11.         { length: 5 },
  12.         () => document.createElement('td')
  13.       )
  14.  
  15.       let image = document.createElement('img')
  16.       image.src = data.img
  17.       tdImage.appendChild(image)
  18.  
  19.       let [name, price, decFactor] = Array.from({ length: 3 }, () =>
  20.         document.createElement('p')
  21.       )
  22.       name.textContent = data.name
  23.       tdName.appendChild(name)
  24.       price.textContent = data.price
  25.       tdPrice.appendChild(price)
  26.       decFactor.textContent = data.decFactor
  27.       tdDecFactor.appendChild(decFactor)
  28.  
  29.       let mark = document.createElement('input')
  30.       mark.type = 'checkbox'
  31.       tdMark.appendChild(mark)
  32.  
  33.       let tr = document.createElement('tr')
  34.       tr.appendChild(tdImage)
  35.       tr.appendChild(tdName)
  36.       tr.appendChild(tdPrice)
  37.       tr.appendChild(tdDecFactor)
  38.       tr.appendChild(tdMark)
  39.       tbody.appendChild(tr)
  40.     })
  41.   })
  42.  
  43.   buy.addEventListener('click', function () {
  44.     let [furniture, totalPrice, avgDecFactor] = [[], 0, 0]
  45.  
  46.     let checked = Array.from(tbody.children).filter(
  47.       x => x.querySelector('input').checked
  48.     )
  49.     checked.forEach(tr => {
  50.       let [name, price, decFactor] = Array.from(tr.children)
  51.         .filter(x => x.querySelector('p'))
  52.         .map(x => x.querySelector('p').textContent)
  53.  
  54.       furniture.push(name)
  55.       totalPrice += +price
  56.       avgDecFactor += +decFactor
  57.     })
  58.  
  59.     avgDecFactor /= checked.length
  60.  
  61.     output.value = `Bought furniture: ${furniture.join(
  62.       ', '
  63.     )}\nTotal price: ${totalPrice.toFixed(
  64.       2
  65.     )}\nAverage decoration factor: ${avgDecFactor}`
  66.   })
  67. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement