Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- let manager = (function () {
- // Create warehouse and take recipes
- let warehouse = { protein: 0, carbohydrate: 0, fat: 0, flavour: 0 };
- let recipes = {
- aplle: { carbohydrate: 1, flavour: 2},
- coke: { carbohydrate: 10, flavour: 20},
- burger: { carbohydrate: 5, flavour: 3, fat: 7},
- omelet: { flavour: 1, fat: 1, protein: 5},
- cheverme: { carbohydrate: 10, flavour: 10, fat: 10, protein: 10}
- };
- // Take commands
- return function getInstructions(input) {
- let [command, item, quantity] = input.split(' ');
- switch (command) {
- case 'restock': return restock(item, quantity);
- case 'prepare': return prepare(item, quantity);
- case 'report': return report();
- }
- }
- // Restock the warehouse
- function restock(product, quantity) {
- warehouse[product] += quantity;
- return 'Success';
- }
- // Prepare the order
- function prepare(meal, quantity) {
- for (let ingradient in recipes[meal]) {
- let neededQuantity = recipes[meal][ingradient] * Number(quantity);
- if (neededQuantity > warehouse[ingradient]) {
- return `Error: not enough ${ingradient} in stock`;
- }
- }
- for (let ingradient in recipes[meal]) {
- let neededQuantity = recipes[meal][ingradient] * Number(quantity);
- warehouse[ingradient] -= neededQuantity;
- }
- return 'Success';
- }
- // Make a report
- function report() {
- return [...Object.keys(warehouse)]
- .map(ingradient => ingradient + '=' + warehouse[ingradient])
- .join(' ');
- }
- })();
- console.log(manager("restock flavour 50"));
- console.log(manager("prepare coke "));
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement