Advertisement
vladovip

DegustationParty_JS Fund

Apr 6th, 2022 (edited)
1,670
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function degustationParty( input) {
  2.  
  3.   let Allmeals = {};
  4.   let counterOfUnlikedMeals = 0;
  5.   let commandLine = input.shift();
  6.  
  7.   while ( commandLine != "Stop"){
  8.       let [command, currentGuest, snack] = commandLine.split("-");
  9.       // console.log(command, guest, meal);
  10.      
  11.  
  12.       if (command == "Like"){
  13.         if ( Allmeals.hasOwnProperty(currentGuest) ==  false){
  14.           Allmeals[currentGuest] = [];
  15.           Allmeals[currentGuest].push(snack);
  16.         } else if (Allmeals.hasOwnProperty(currentGuest) == true ){
  17.           if(Allmeals[currentGuest].includes(snack)== false){
  18.             Allmeals[currentGuest].push(snack);
  19.           } else if (Allmeals[currentGuest].includes(snack) == true ){
  20.             continue;
  21.           }
  22.         }  
  23.       }
  24.      
  25.       if ( command == "Dislike"){
  26.  
  27.         if(Allmeals.hasOwnProperty(currentGuest) ==  true){
  28.          
  29.           if (Allmeals[currentGuest].includes(snack) == true){
  30.             let indexOfSnack = Allmeals[currentGuest].indexOf(snack);
  31.             Allmeals[currentGuest].splice(indexOfSnack, 1);
  32.             counterOfUnlikedMeals++;
  33.             console.log(`${currentGuest} doesn't like the ${snack}.`);
  34.          } else if( Allmeals[currentGuest].includes(snack) == false ){
  35.               console.log(`${currentGuest} doesn't have the ${snack} in his/her collection.`);
  36.           }      
  37.         }
  38.  
  39.         if (Allmeals.hasOwnProperty(currentGuest) == false){
  40.           console.log(`${currentGuest} is not at the party.`);
  41.         }
  42.       }
  43.       commandLine = input.shift();
  44.   }
  45.  
  46.  
  47.   let guestMealArr = Object.entries(Allmeals);
  48.   for( let [key,value] of guestMealArr ){
  49.     console.log(`${key}: ${value.join(", ")}`);
  50.   }
  51.   console.log(`Unliked meals: ${counterOfUnlikedMeals}`);
  52.  
  53.  
  54. }
  55.  
  56. degustationParty([
  57.   "Like-Krisi-shrimps",
  58.   "Like-Krisi-soup",
  59.   "Like-Penelope-dessert",
  60.   "Like-Misho-salad",
  61.   "Stop",
  62. ]);
  63.  
  64. console.log(`------------`);
  65.  
  66. degustationParty([
  67.   "Like-Krisi-shrimps",
  68.   "Dislike-Vili-carp",
  69.   "Dislike-Krisi-salad",
  70.   "Stop",
  71. ]);
  72.  
  73. console.log(`------------`);
  74.  
  75.  
  76. degustationParty(["Like-Katy-fish",
  77. "Dislike-Katy-fish",
  78. "Stop"])
  79.  
  80.  
  81.  
  82.  
  83.  
  84. // ●  The possible outputs are:
  85. // o    "{Guest} doesn't like the {meal}."
  86. // o    "{Guest} is not at the party."
  87. // o    "{Guest} doesn't have the {meal} in his/her collection."
  88. // o    "{Guest1}: {meal1}, {meal2} ... {mealN}
  89. // {Guest2}: {meal1}, {meal2} ... {mealN}
  90. // …
  91. // {GuestN}: {meal1}, {meal2} ... {mealN}
  92. // Unliked meals: {count of all unliked meals}"
  93.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement