Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- function thePianist(input){
- let piecesCount = Number(input.shift());
- let infoObj = {};
- for(let index = 0; index <piecesCount; index++){
- let [name, composer, key] = input[index].split('|');
- infoObj[name] = {
- composer,
- key,
- }
- }
- let index = piecesCount;
- while(input[index] !== 'Stop') {
- let [action, ...data] = input[index].split('|');
- switch(action) {
- case 'Add':
- let [nameToAdd, composer, key] = data;
- if(infoObj.hasOwnProperty(nameToAdd)) {
- console.log(`${nameToAdd} is already in the collection!`)
- } else {
- infoObj[nameToAdd] = {
- composer,
- key,
- }
- console.log(`${nameToAdd} by ${composer} in ${key} added to the collection!`);
- }
- break;
- case 'Remove':
- let pieceToRemove = data[0];
- if(infoObj.hasOwnProperty(pieceToRemove)) {
- delete infoObj[pieceToRemove];
- console.log(`Successfully removed ${pieceToRemove}!`);
- } else {
- console.log(`Invalid operation! ${pieceToRemove} does not exist in the collection.`);
- }
- break;
- case 'ChangeKey':
- let [pieceToUpdate, newKey] = data;
- if(infoObj.hasOwnProperty(pieceToUpdate)) {
- infoObj[pieceToUpdate].key = newKey;
- console.log(`Changed the key of ${pieceToUpdate} to ${newKey}!`);
- } else {
- console.log(`Invalid operation! ${pieceToUpdate} does not exist in the collection.`);
- }
- break;
- }
- index++;
- }
- for(const piece in infoObj) {
- console.log(`${piece} -> Composer: ${infoObj[piece].composer}, Key: ${infoObj[piece].key}`);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment