Advertisement
Guest User

Untitled

a guest
Jun 22nd, 2018
99
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.81 KB | None | 0 0
  1. let manager = (function () {
  2. // Create warehouse and take recipes
  3. let warehouse = { protein: 0, carbohydrate: 0, fat: 0, flavour: 0 };
  4.  
  5. let recipes = {
  6. aplle: { carbohydrate: 1, flavour: 2},
  7. coke: { carbohydrate: 10, flavour: 20},
  8. burger: { carbohydrate: 5, flavour: 3, fat: 7},
  9. omelet: { flavour: 1, fat: 1, protein: 5},
  10. cheverme: { carbohydrate: 10, flavour: 10, fat: 10, protein: 10}
  11. };
  12.  
  13. // Take commands
  14. return function getInstructions(input) {
  15. let [command, item, quantity] = input.split(' ');
  16. switch (command) {
  17. case 'restock': return restock(item, quantity);
  18. case 'prepare': return prepare(item, quantity);
  19. case 'report': return report();
  20. }
  21. }
  22.  
  23.  
  24. // Restock the warehouse
  25. function restock(product, quantity) {
  26. warehouse[product] += quantity;
  27. return 'Success';
  28. }
  29.  
  30. // Prepare the order
  31. function prepare(meal, quantity) {
  32. for (let ingradient in recipes[meal]) {
  33. let neededQuantity = recipes[meal][ingradient] * Number(quantity);
  34. if (neededQuantity > warehouse[ingradient]) {
  35. return `Error: not enough ${ingradient} in stock`;
  36. }
  37. }
  38.  
  39. for (let ingradient in recipes[meal]) {
  40. let neededQuantity = recipes[meal][ingradient] * Number(quantity);
  41. warehouse[ingradient] -= neededQuantity;
  42. }
  43. return 'Success';
  44. }
  45.  
  46. // Make a report
  47. function report() {
  48. return [...Object.keys(warehouse)]
  49. .map(ingradient => ingradient + '=' + warehouse[ingradient])
  50. .join(' ');
  51. }
  52. })();
  53.  
  54.  
  55.  
  56. console.log(manager("restock flavour 50"));
  57. console.log(manager("prepare coke "));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement