Advertisement
a1m

04. Minka The JavaScript Goddess

a1m
Jan 31st, 2016
192
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(input) {
  2.     var allTasks = [];
  3.     for (var i = 0; i < input.length; i++) {
  4.         var line = input[i];
  5.         line = line.replace('&', ' & ');
  6.         var data = line.split('&');
  7.         var taskName = data[0].trim();
  8.         var taskType = data[1].trim();
  9.         var taskNumber = Number(data[2]);
  10.         var taskScore = Number(data[3]);
  11.         var taskLinesOfCode = Number(data[4]);
  12.         var task = null;
  13.         for (var j = 0; j < allTasks.length; j++) {
  14.             var tempName = 'Task ' + taskNumber;
  15.             if (allTasks[j].name === tempName) {
  16.                 task = allTasks[j];
  17.                 break;
  18.             }
  19.         }
  20.         if (task == null) {
  21.             task = {
  22.                 name: 'Task ' + taskNumber,
  23.                 tasks: [],
  24.                 average: 0,
  25.                 lines : 0
  26.             }
  27.             allTasks.push(task);
  28.         }
  29.         task.average += taskScore;
  30.         task.lines += taskLinesOfCode;
  31.         var taskObj = {
  32.             name: taskName,
  33.             type: taskType
  34.         }
  35.         task.tasks.push(taskObj);
  36.     }
  37.     for (var k = 0; k < allTasks.length; k++) {
  38.         var num = Object.keys(allTasks[k]).length;
  39.         var avg = parseFloat((allTasks[k].average / allTasks[k].tasks.length).toFixed(2));
  40.         allTasks[k].average = avg;
  41.         allTasks[k].tasks.sort(function (a, b) {
  42.             return a.name.localeCompare(b.name);
  43.         });
  44.     }
  45.     allTasks.sort(function (a, b) {
  46.         if (a.average === b.average) {
  47.             return a.lines - b.lines;
  48.         }
  49.         return b.average - a.average;
  50.     });
  51.     var result = {};
  52.     for (var l = 0; l < allTasks.length; l++) {
  53.         var tempObj = allTasks[l];
  54.         var objName = tempObj.name;
  55.         delete tempObj.name;
  56.         result[objName] = tempObj;
  57.     }
  58.     console.log(JSON.stringify(result));
  59. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement