JavaScript Problem, ich komm kein Stück weiter?

3 Antworten

Von Experte BeamerBen bestätigt

Hier ein simpler Vorschlag:

Nutze ein Array der alle benötigten Zutaten als Auflistung speichert sprich:

let benoetigteZutaten = []

Wenn du dann auf ein Button clicks dann soll dieser Array einfach befüllt werden mit den Zutaten, Beispiel:

benoetigteZutaten.push("apfel", "apfel", "zucker")
// benoetigteZutaten hat dann folgenden Inhalt
// ["apfel", "apfel", "zucker"]

Wenn du nochmal auf diese Mahlzeit Klicken solltest dann würde dein Array wie folgt aussehen:

// benoetigteZutaten hat dann folgenden Inhalt
// ["apfel", "apfel", "zucker", "apfel", "apfel", "zucker"]

Da es nur ein Denkansatz ist, kannst du selber heraus finden wie du jetzt die allgemeine Einkaufsliste aufbaust anhand deines Arrays. Apfel steht jetzt 4x drin, sprich du musst:

  • Anzahl an Zutaten zählen und merken
  • Anhand der gezählten Zutatenliste dann deine Einkaufstliste aufbauen (als string von mir aus)
Woher ich das weiß:Berufserfahrung – Beruf, Schule, Hobby und eigene Erfahrungen

Babelfish  21.02.2023, 16:00

Wobei das Zählen den Zutaten eher nicht der richtige Ansatz ist. Das könnte bei 500 g Zucker schon mühselig werden.

Statt einem String würde ich pro Zutat ein Objekt nutzen:

let apfel = {
  title: "Apfel",
  unit: "Stück",
  quantity: 2,
};

let zucker = {
  title: "Zucker",
  unit: "Gramm",
  quantity: 250,
};
Berny96  21.02.2023, 16:01
@Babelfish

Ja, es gäb viele bessere Ansätze. Für einen Anfänger aber könnte es ein wenig überfordert sein schon mit Objekten zu arbeiten. War halt nur ein Ansatz, dein Weg wäre definitiv schon mal ein großer Schritt weiter

wandererds 
Beitragsersteller
 21.02.2023, 15:39

Super, danke. Ich freu mich über jeden Ratschlag, der mich ans Ziel bringt

An deiner Stelle würde ich die Zutaten in einer Variable in einem Objekt bzw. Map speichern.

Dh. du speicherst unter einem Key z.B. Apfel einen Wert, in dem Fall kann das die Anzahl sein. Später eventuell wie Babelfish vorschlägt eventuell auch einen String mit der Einheit.

Sobald auf einen Knopf gedrückt wird aktualisierst du dann deine Map/Dictionary/Objekt/whatever und generierst dir aus dieser Key Value Zuweisung über eine Schleife, reduce oder ähnliches einen String den du anzeigen kannst.

mehr über Maps findest du hier:

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map

eventuell kann ich dir n Beispiel schreiben wenn du es nicht hinbekommst aber gerade zu faul.

Der Vorschlag von Berny96 mit einem Array ist auch nicht so schlecht, hier ist nur der Nachteil, dass du dann eventuell zwei mal "Apfel" auf deiner Liste stehen hast und zu zählen wie oft Apfel auf der Liste steht oder ähnliches wäre etwas nervig.