main.js 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445
  1. /* Есть массив чисел:
  2. [5,8,2,1,15,2,3,5,9,11,10,4,3,14,1,7,10,3,2,13]
  3. Вывести его в виде графика (bar charts), где по оси x -
  4. индекс элемента, по оси y - значение.
  5. Сделать цветовую градацию показателей на графике: 0 - 5 зеленый, 6 - 10 желтый, свыше 10 красный.
  6. Допускается использование только html, css, javascript. Использование сторонних библиотек, canvas, svg не допускается. */
  7. const array = [5,8,2,1,15,2,3,5,9,11,10,4,3,14,1,7,10,3,2,13],
  8. root = document.querySelector('.root'),
  9. axY = document.createElement('div');
  10. axY.classList.add('axY');
  11. axY.style.height = `${Math.max.apply(null, array) * 20}px`;
  12. root.append(axY);
  13. for (let i = 0; i <= Math.max.apply(null, array); i++){
  14. yIndex = document.createElement('span');
  15. yIndex.innerText = i;
  16. axY.append(yIndex);
  17. }
  18. array.map((item, index) => {
  19. let div = document.createElement('div'),
  20. xIndex = document.createElement('span'),
  21. height = item * 20;
  22. div.classList.add('bar');
  23. xIndex.classList.add('line');
  24. xIndex.innerText = index;
  25. div.style.height = `${height}px`;
  26. if (item > 0 && item < 5) {
  27. div.style.backgroundColor = 'green';
  28. } else if (item >= 5 && item <= 10){
  29. div.style.backgroundColor = 'yellow';
  30. } else if (item > 10){
  31. div.style.backgroundColor = 'red';
  32. }
  33. root.append(xIndex);
  34. root.append(div);
  35. });