Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solve(input) {
- var allTasks = [];
- for (var i = 0; i < input.length; i++) {
- var line = input[i];
- line = line.replace('&', ' & ');
- var data = line.split('&');
- var taskName = data[0].trim();
- var taskType = data[1].trim();
- var taskNumber = Number(data[2]);
- var taskScore = Number(data[3]);
- var taskLinesOfCode = Number(data[4]);
- var task = null;
- for (var j = 0; j < allTasks.length; j++) {
- var tempName = 'Task ' + taskNumber;
- if (allTasks[j].name === tempName) {
- task = allTasks[j];
- break;
- }
- }
- if (task == null) {
- task = {
- name: 'Task ' + taskNumber,
- tasks: [],
- average: 0,
- lines : 0
- }
- allTasks.push(task);
- }
- task.average += taskScore;
- task.lines += taskLinesOfCode;
- var taskObj = {
- name: taskName,
- type: taskType
- }
- task.tasks.push(taskObj);
- }
- for (var k = 0; k < allTasks.length; k++) {
- var num = Object.keys(allTasks[k]).length;
- var avg = parseFloat((allTasks[k].average / allTasks[k].tasks.length).toFixed(2));
- allTasks[k].average = avg;
- allTasks[k].tasks.sort(function (a, b) {
- return a.name.localeCompare(b.name);
- });
- }
- allTasks.sort(function (a, b) {
- if (a.average === b.average) {
- return a.lines - b.lines;
- }
- return b.average - a.average;
- });
- var result = {};
- for (var l = 0; l < allTasks.length; l++) {
- var tempObj = allTasks[l];
- var objName = tempObj.name;
- delete tempObj.name;
- result[objName] = tempObj;
- }
- console.log(JSON.stringify(result));
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement