Advertisement
Guest User

Untitled

a guest
Oct 24th, 2022
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. function adAstra(input) {
  2.     let products = {}; // for object solution
  3.     let totalCalories = 0;
  4.     let pattern = /(?<del>\||\#)(?<product>[A-Za-z ]+)\k<del>(?<date>[0-3]{1}[\d]{1}\/[0-1]{1}\d{1}\/\d{2})\k<del>(?<calories>\d{1,5})\k<del>/g;
  5.     let result = '';
  6.     let resultArr = []; // idea for solution with array, from: https://softuni.bg/forum/41382/kyde-mi-e-greshkata-v-zadacha-ad-astra-i-zashto-judge-mi-dava-33-tochki
  7.  
  8.     while ((result = pattern.exec(input)) !== null) {
  9.         let productName = result.groups.product;
  10.         let date = result.groups.date;
  11.         let calories = Number(result.groups.calories);
  12.        
  13.         totalCalories += calories;
  14.  
  15.         // Array solution
  16.         resultArr.push(`Item: ${productName}, Best before: ${date}, Nutrition: ${calories}`);
  17.  
  18.         /* // Object solution
  19.         if (products.hasOwnProperty(productName) === false) {
  20.             products[productName] = {
  21.                 calories: 0
  22.             }
  23.         }
  24.  
  25.         products[productName].calories += calories;
  26.         products[productName].expiryDate = date;
  27.         */
  28.     }
  29.  
  30.     let daysWithFood = Math.floor(totalCalories / 2000);
  31.    
  32.     console.log(`You have food to last you for: ${daysWithFood} days!`);
  33.    
  34.     if (daysWithFood >= 1) {
  35.         /* // Object solution
  36.         for (let product of Object.keys(products)) {
  37.             console.log(`Item: ${product}, Best before: ${products[product].expiryDate}, Nutrition: ${products[product].calories}`);
  38.         }
  39.         */
  40.  
  41.         // Array solution
  42.        resultArr.forEach(el => console.log(el));
  43.     }
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement