JavaScript Problem, ich komm kein Stück weiter?
Ich wollte ein Programm schreiben, welches mit bei der Zusammenstellung der Einkaufsliste helfen soll.
Wenn ich auf den Button Drücke spuckt er mir unten aus, was auf meine Einkaufsliste muss, soweit so gut. Ich weiß aber nicht, wie ich JS dazu bringe, dass er mir die variablen zusammen und eine komplette Einkaufsliste ausspuckt.
Ich glaube, dass ich dafür auch schon an den variablen Fehler begangen habe, die Anzahl der Zutaten sind auch als String gespeichert. Falls ich das ändern müsste, wäre ein Denkanstoß in die richtige Richtung sehr nett.
Euch allen ein riesen Danke
hier der Code:
3 Antworten
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)
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
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.
wenn du weiter Javascript lernen möchtest, kann ich dir dieses kostenlose Spiel empfehlen:
https://itgy.de/schulungen/scriptfighter-javascript-lernspiel/
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: