georgiev955

The Pianist

Jul 19th, 2023
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function thePianist(input){
  2.     let piecesCount = Number(input.shift());
  3.     let infoObj = {};
  4.     for(let index = 0; index <piecesCount; index++){
  5.       let [name, composer, key] = input[index].split('|');
  6.       infoObj[name] = {
  7.         composer,
  8.         key,
  9.       }
  10.     }
  11.     let index = piecesCount;
  12.     while(input[index] !== 'Stop') {
  13.       let [action, ...data] = input[index].split('|');
  14.       switch(action) {
  15.         case 'Add':
  16.           let [nameToAdd, composer, key] = data;
  17.           if(infoObj.hasOwnProperty(nameToAdd)) {
  18.             console.log(`${nameToAdd} is already in the collection!`)
  19.           } else {
  20.             infoObj[nameToAdd] = {
  21.               composer,
  22.               key,
  23.             }
  24.             console.log(`${nameToAdd} by ${composer} in ${key} added to the collection!`);
  25.           }
  26.           break;
  27.         case 'Remove':
  28.           let pieceToRemove = data[0];
  29.           if(infoObj.hasOwnProperty(pieceToRemove)) {
  30.             delete infoObj[pieceToRemove];
  31.             console.log(`Successfully removed ${pieceToRemove}!`);
  32.           } else {
  33.             console.log(`Invalid operation! ${pieceToRemove} does not exist in the collection.`);
  34.           }
  35.           break;
  36.         case 'ChangeKey':
  37.           let [pieceToUpdate, newKey] = data;
  38.           if(infoObj.hasOwnProperty(pieceToUpdate)) {
  39.             infoObj[pieceToUpdate].key = newKey;
  40.             console.log(`Changed the key of ${pieceToUpdate} to ${newKey}!`);
  41.           } else {
  42.             console.log(`Invalid operation! ${pieceToUpdate} does not exist in the collection.`);
  43.           }
  44.           break;
  45.       }
  46.       index++;
  47.     }
  48.     for(const piece in infoObj) {
  49.       console.log(`${piece} -> Composer: ${infoObj[piece].composer}, Key: ${infoObj[piece].key}`);
  50.     }
  51. }
Advertisement
Add Comment
Please, Sign In to add comment