Övningsåtgärder

Slutförd

Som företagsägare i en glassbutik har du lärt dig några programmeringskunskaper och bestämt dig för att bygga lite programvara för ditt företag. En dag kanske du förvandlar allt till en franchise.

Du vill först koda allt du vet om din butik, till exempel dina olika smaker och deras priser. Sedan vill du simulera vissa kundinteraktioner. Slutligen vill du beräkna dina vinster och få några andra användbara insikter.

Bygg upp din verksamhet

Börja först ditt glassimperium genom att koda alla glasssmaker.

  1. Skapa en fil med namnet app.js och lägg till följande innehåll:

    let iceCreamFlavors = ["Chocolate", "Strawberry", "Vanilla", "Pistachio", "Neapolitan", "Mint Chip", "Raspberry"];
    
  2. Därefter vill du kategorisera smakerna efter typ och ge var och en ett pris. Det slutar med att du ändrar koden på följande sätt:

    let iceCreamFlavors = [
     { name: "Chocolate", type: "Chocolate", price: 2 }, 
     { name: "Strawberry", type: "Fruit", price: 1 }, 
     { name: "Vanilla", type: "Vanilla", price 2 }, 
     { name: "Pistachio", type: "Nuts", price: 1.5 }, 
     { name: "Neapolitan", type: "Chocolate", price: 2}, 
     { name: "Mint Chip", type: "Chocolate", price: 1.5 },
     { name: "Raspberry", type: "Fruit", price: 1},
    ];
    

    Nu har du konverterat matrisobjektet från strängar till objekt. Du har gjort den här ändringen för att förutse kunder som efterfrågar saker efter pris eller typ.

Ta emot kunder

Du vill simulera några kundscenarier i koden för att se till att ditt sätt att kategorisera ditt lager är tillräckligt flexibelt.

  1. Innan din första kundtransaktion inser du att du behöver en transactions matris. Du börjar fundera på vilken information du vill spara för varje transaktion. Priset är definitivt en sak att spara, och förmodligen vad dina kunder köper också. Du lägger till följande kod:

    // { scoops: [], total: }
    let transactions = []
    
  2. Därefter bestämmer du dig för att koda transaktioner genom att lägga till följande kod:

    transactions.push({ scoops: ["Chocolate", "Vanilla", "Mint Chip"], total: 5.5 })
    transactions.push({ scoops: ["Raspberry", "StrawBerry"], total: 2 })
    transactions.push({ scoops: ["Vanilla", "Vanilla"], total: 4 })
    

    Det simulerar tre kundinteraktioner. Sedan vill du analysera resultatet.

Analysera ditt företag

När du driver ett företag är vinster viktiga, men de är inte det enda viktiga. Vad säljer du så mycket av att du behöver för att se till att det finns tillräckligt med det i lager? Dessutom, vad säljer du inte så mycket av, så du behöver inte hålla så mycket av det i lager?

  1. Lägg till följande kod för att beräkna dina intäkter:

    const total = transactions.reduce((acc, curr) => acc + curr.total, 0);
    console.log(`You've made ${total} $ today`); // You've made 11.5 $ today
    
  2. Lägg till följande kod för att ta reda på hur mycket du har sålt för varje smak:

    let flavorDistribution = transactions.reduce((acc, curr) => {
      curr.scoops.forEach(scoop => {
        if (!acc[scoop]) {
          acc[scoop] = 0;
        }
        acc[scoop]++;
      })
      return acc;
    }, {}) // { Chocolate: 1, Vanilla: 3, Mint Chip: 1, Raspberry: 1, StrawBerry: 1 }
    

    Föregående kod går igenom alla transaktioner. För varje transaktion checkar den igenom skoporna och uppdaterar en ordlista med hur ofta skopor av varje smak har köpts. Om denna försäljning var en verklig försäljningssituation skulle du förmodligen behöva fylla på mer vanilj.

Grattis, du har startat ett glassföretag. Du vet hur du kodar smaker och transaktioner med hjälp av matriser och objekt. Du har också lärt dig hur du sammanfattar dina intäkter och förstår hur mycket du har sålt av varje smak.