Advertisement
nikolayneykov

Untitled

Mar 8th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function solve(params) {
  2.     let lessons = params.shift().split(', ');
  3.     let commands = params.slice(0, params.length - 1).map(x => x.split(':'));
  4.  
  5.     for (let token of commands) {
  6.         let command = token[0];
  7.         let lessonTitle = token[1];
  8.  
  9.         if (command === 'Add' && !lessons.includes(lessonTitle)) {
  10.             lessons.push(lessonTitle);
  11.         } else if (command === 'Insert' && !lessons.includes(lessonTitle)) {
  12.             let index = +token[2];
  13.  
  14.             if (index >= 0 && index < lessons.length) {
  15.                 lessons.splice(index, 0, lessonTitle);
  16.             }
  17.         } else if (command === 'Remove') {
  18.             lessons = lessons.filter(x => x !== lessonTitle && x !== lessonTitle + '-Exercise');
  19.         } else if (command === 'Swap') {
  20.             let secondTitle = token[2];
  21.             let firstIndex = lessons.indexOf(lessonTitle);
  22.             let secondIndex = lessons.indexOf(secondTitle);
  23.             if (firstIndex !== -1 && secondIndex !== -1) {
  24.                 let tempLesson = lessons[firstIndex];
  25.                 lessons[firstIndex] = lessons[secondIndex];
  26.                 lessons[secondIndex] = tempLesson;
  27.  
  28.                 if (lessons[firstIndex + 1] === lessonTitle + '-Exercise') {
  29.                     let exercise = lessons.splice(firstIndex + 1, 1);
  30.                     lessons.splice(secondIndex + 1, 0, exercise);
  31.                 }
  32.  
  33.                 if (lessons[secondIndex + 1] === secondTitle + '-Exercise') {
  34.                     let exercise = lessons.splice(secondIndex + 1, 1);
  35.                     lessons.splice(firstIndex + 1, 0, exercise);
  36.                 }
  37.             }
  38.         } else if (command === 'Exercise') {
  39.             let index = lessons.indexOf(lessonTitle);
  40.  
  41.             if (index === -1) {
  42.                 lessons.push(lessonTitle);
  43.                 lessons.push(lessonTitle + '-Exercise');
  44.             } else if (lessons[index + 1] !== lessonTitle + '-Exercise') {
  45.                 lessons.splice(index + 1, 0, lessonTitle + '-Exercise');
  46.             }
  47.         }
  48.     }
  49.  
  50.     for (let i = 0; i < lessons.length; i++) {
  51.         console.log(`${i + 1}.${lessons[i]}`);
  52.     }
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement