Advertisement
shady_obeyd

01.BinaryDecoding

Feb 4th, 2019
149
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve() {
  2.     let inputString = document.getElementById('str').value;
  3.  
  4.     let sum = calculateSumOfOnes(inputString);
  5.  
  6.     do {
  7.         sum = sumDigits(sum.toString());
  8.     } while(sum > 9);
  9.  
  10.     let newString = inputString.substring(sum, inputString.length - sum);
  11.  
  12.     let strArr = getStringArray(newString);
  13.  
  14.     let result = '';
  15.  
  16.     for(let element of strArr){
  17.         result += String.fromCharCode(parseInt(element, 2));
  18.     }
  19.  
  20.     let validatePattern = /[A-Za-z\s]+/g;
  21.  
  22.     result = result.match(validatePattern).join('');
  23.  
  24.     let resultElement = document.getElementById('result');
  25.     resultElement.textContent = result;
  26.  
  27.     function getStringArray(str) {
  28.         let splitStr = [];
  29.         let partialStr = '';
  30.         let index = 1;
  31.         for(let char of str){
  32.             partialStr += char;
  33.  
  34.             if(index % 8 === 0){
  35.                 splitStr.push(partialStr);
  36.                 partialStr = '';
  37.             }
  38.             index++;
  39.         }
  40.  
  41.         return splitStr;
  42.     }
  43.  
  44.     function sumDigits(sumToString) {
  45.         let sum = 0;
  46.  
  47.         for(let char of sumToString){
  48.             sum += Number(char);
  49.         }
  50.  
  51.         return sum;
  52.     }
  53.  
  54.     function calculateSumOfOnes(inputString) {
  55.         let sum = 0;
  56.  
  57.         for(let char of inputString){
  58.             if(char === '1'){
  59.                 sum += Number(char);
  60.             }
  61.         }
  62.  
  63.         return sum;
  64.     }
  65. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement