Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function solve(params) {
- let lessons = params.shift().split(', ');
- let commands = params.slice(0, params.length - 1).map(x => x.split(':'));
- for (let token of commands) {
- let command = token[0];
- let lessonTitle = token[1];
- if (command === 'Add' && !lessons.includes(lessonTitle)) {
- lessons.push(lessonTitle);
- } else if (command === 'Insert' && !lessons.includes(lessonTitle)) {
- let index = +token[2];
- if (index >= 0 && index < lessons.length) {
- lessons.splice(index, 0, lessonTitle);
- }
- } else if (command === 'Remove') {
- lessons = lessons.filter(x => x !== lessonTitle && x !== lessonTitle + '-Exercise');
- } else if (command === 'Swap') {
- let secondTitle = token[2];
- let firstIndex = lessons.indexOf(lessonTitle);
- let secondIndex = lessons.indexOf(secondTitle);
- if (firstIndex !== -1 && secondIndex !== -1) {
- let tempLesson = lessons[firstIndex];
- lessons[firstIndex] = lessons[secondIndex];
- lessons[secondIndex] = tempLesson;
- if (lessons[firstIndex + 1] === lessonTitle + '-Exercise') {
- let exercise = lessons.splice(firstIndex + 1, 1);
- lessons.splice(secondIndex + 1, 0, exercise);
- }
- if (lessons[secondIndex + 1] === secondTitle + '-Exercise') {
- let exercise = lessons.splice(secondIndex + 1, 1);
- lessons.splice(firstIndex + 1, 0, exercise);
- }
- }
- } else if (command === 'Exercise') {
- let index = lessons.indexOf(lessonTitle);
- if (index === -1) {
- lessons.push(lessonTitle);
- lessons.push(lessonTitle + '-Exercise');
- } else if (lessons[index + 1] !== lessonTitle + '-Exercise') {
- lessons.splice(index + 1, 0, lessonTitle + '-Exercise');
- }
- }
- }
- for (let i = 0; i < lessons.length; i++) {
- console.log(`${i + 1}.${lessons[i]}`);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement