Advertisement
Guest User

Untitled

a guest
May 30th, 2018
201
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function surveyParser(text) {
  2.     let validationPattern = /<svg>.+<\/svg>/gm;
  3.     if (!validationPattern.test(text)) {
  4.         console.log("No survey found");
  5.         return;
  6.     }
  7.     let labelPattern = /\[([a-zA-Z\- ]+)\]/gm;
  8.     if (!labelPattern.test(text)) {
  9.         console.log("Invalid format");
  10.         return;
  11.     }
  12.     let label = text.match(labelPattern)[0];
  13.     label = label.substring(1, label.length - 1);
  14.  
  15.     let dataPattern = /<g><val>(\d+)<\/val>(\d+)<\/g>/gm;
  16.     let ratings = 0;
  17.     let count = 0;
  18.  
  19.     let match = dataPattern.exec(text);
  20.     while(match){
  21.         let currentRaiting = Number(match[1]) * Number(match[2]);
  22.         ratings += currentRaiting;
  23.         count += Number(match[2]);
  24.         match = dataPattern.exec(text);
  25.     }
  26.     let result = ratings / count;
  27.     result = precisionRound(result, 2);
  28.     console.log(`${label}: ${result}`);
  29.  
  30.     function precisionRound(number, precision) {
  31.         var factor = Math.pow(10, precision);
  32.         return Math.round(number * factor) / factor;
  33.     }
  34. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement