Advertisement
Guest User

Untitled

a guest
Oct 16th, 2019
97
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. 'use strict'
  2.  
  3.  
  4.  
  5. document.addEventListener('DOMContentLoaded', function () {
  6.  
  7.     //Функция для вывода таблицы умножения в консоль
  8.     function tableMultiplications(n) {
  9.         let counter,
  10.             lineBorder = '+------',
  11.             space,
  12.             сondition;
  13.  
  14.         // Считаем сколько разрядов в полученном числе и дорисовываем бордюр в зависимости от длины    
  15.         lineBorder += '-'.repeat(String(n).length);
  16.  
  17.         // Ставим ограничитель на ячейку в бордюре
  18.         lineBorder += '-+-';
  19.  
  20.         // Проолжаем рисовать бордюр в зависимости от максимального количества разрядов в итоговом числе
  21.         lineBorder += '-'.repeat(String(n * 100).length);
  22.  
  23.         // Ставим ограничитель в конце бордюра
  24.         lineBorder += '-+';
  25.  
  26.  
  27.  
  28.         // Рисуем саму таблицу умножения от 1 до 99
  29.         for (let i = 1; i < 100; i++) {
  30.  
  31.             // Верхний бордюр
  32.             console.log(lineBorder);
  33.  
  34.             // Прибавляем пробел, если счетчик имеет всего 1 разряд
  35.             counter = (i / 10 >= 1) ? i : ` ${i}`;
  36.  
  37.             // Прибавляем пробел для вывода результата
  38.             сondition = String(n * 100).length - String(i * n).length;
  39.  
  40.             switch (сondition) {
  41.                 case 0:
  42.                     space = '';
  43.                     break;
  44.                 case 1:
  45.                     space = ' ';
  46.                     break;
  47.                 case 2:
  48.                     space = '  ';
  49.                     break;
  50.             }
  51.  
  52.             // Формируем строчку вывода
  53.             console.log(`| ${counter} x ${n} | ${i * n} ${space}|`);
  54.         }
  55.  
  56.         // Замыкающий бордюр
  57.         console.log(lineBorder);
  58.  
  59.     }
  60.     function maxRepeat(str) {      
  61.         const arr = str.split(',');
  62.         const unique = {};
  63.         let countElements = 1;
  64.      
  65.         // получаем уникальыне элементы и их количество
  66.         arr.forEach(element => {
  67.             if (unique[element]) {
  68.                 unique[element] += 1;
  69.             } else {
  70.                 unique[element] = 1;
  71.             }
  72.         });
  73.        
  74.         // проверяем длину массива уникальных элементов
  75.         // и уменьшаем количество элементов для вывода при необходимости
  76.         const uniqueLength = Object.keys(unique).length;
  77.         if (countElements > uniqueLength) {
  78.             countElements = uniqueLength;
  79.         }
  80.      
  81.         // создаем массив обьектов из обьекта с уникальными элементами
  82.         // после сортируем его по количеству повторений
  83.         const objectArray = Object.keys(unique)
  84.             .map(item => ({
  85.                 element: item,
  86.                 repeats: unique[item],
  87.             }))
  88.             .sort((a, b) => b.repeats - a.repeats)
  89.      
  90.      
  91.         // выводим результат
  92.         console.log('------------');
  93.         for (let i = 0; i < countElements; i++) {
  94.             console.log(`Элемент: ${objectArray[i].element}, количество повторений: ${objectArray[i].repeats}`)
  95.         }
  96.     }
  97.     maxRepeat('8,8,5,5,5,4,4,4,4,4,44,8,8,8,8,8,8,8,8,88,8,4');
  98.  
  99.  
  100.  
  101.     // Функция для обработки клика
  102.     (function () {
  103.         const round = document.querySelectorAll('.round'),
  104.             conntextBlock = document.querySelector('#click-content');
  105.  
  106.         round.forEach(function (item, i) {
  107.             item.addEventListener('click', function () {
  108.                 conntextBlock.innerHTML = `Вы нажали на круг № ${i + 1}`;
  109.             })
  110.         });
  111.     }());
  112.  
  113.     // Функция для проверки на целое число и иницилизации таблицы в консоли
  114.     (function () {
  115.         const input = document.querySelector('#table-multiplications'),
  116.             btn = document.querySelector('#result-table'),
  117.             alert = document.querySelector('#alert-multiplications');
  118.  
  119.         // Вешаем событие клик на кнопку
  120.         btn.addEventListener('click', function () {
  121.  
  122.             // Проверяем условие  
  123.             if (Number.isInteger(+input.value)) {
  124.                 alert.classList.add('green-color');
  125.                 alert.classList.remove('red-color');
  126.                 alert.innerHTML = 'Для просмотра резултата откройте консоль браузера';
  127.                 tableMultiplications(+input.value);
  128.             } else {
  129.                 alert.classList.remove('green-color');
  130.                 alert.classList.add('red-color');
  131.                 alert.innerHTML = 'Данные введены с ошибкой, повторите ввод';
  132.  
  133.             }
  134.         });
  135.     }());
  136.  
  137.  
  138.  
  139. });
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement