Übergebenen value-Wert als Operator nutzen.
Javascript
- javascript
hallo,
ich habe ein Problem bei einem Javascript. Ich möchte, dass der Wert eines Buttons z.B. +, -, * und / als Operatoren nutzbar sind, damit ich zwei beliebige Zahlen damit behandeln und ausgeben kann. Das funktioniert mit Buttons und inputfeldern. Klickt man den Button, wird der Wert in this.value gespeichert.
z.B.
Ergebnis.value = Zahl1.value + this.value + Zahl2.value
Das gibt mir aber nur aus: 22*2, mehr nicht. Ich würde es aber gerne als Operator nutzen. Wie muss ich das machen, damit es funktioniert?
Danke!
Om nah hoo pez nyeetz, Javascript!
Ergebnis.value = Zahl1.value + this.value + Zahl2.value
Das gibt mir aber nur aus: 22*2, mehr nicht.
Ja. Das ist so richtig, denn die Werte sind zunächst einmal Zeichenketten bzw. Zahlen. JavaScript wandelt dann automatisch die Typen nach Bedarf um: Aus
2 + '*' + 22 wird '2' + '*' + '22' und mithin '2*22' weil die Addition kein sinnvolles Ergebnis liefert.
Du müsstest eine if-abfrage einbauen:
if (this.value == '*') Ergebnis.value = Zahl1.value + this.value + Zahl2.value;
Matthias
Om nah hoo pez nyeetz, Matthias Apsel!
if (this.value == '*') Ergebnis.value = Zahl1.value + this.value + Zahl2.value;
cnpe
if (this.value == '*') Ergebnis.value = Zahl1.value * Zahl2.value;
Matthias
danke,
ich dachte es gäbe eine einfache Lösung. Habe dann mal dafür switch genutzt.
Tach!
ich dachte es gäbe eine einfache Lösung. Habe dann mal dafür switch genutzt.
Nein, es gibt zwar eval(), aber damit wird die Lösung nur auf den ersten Blick einfacher. Denn sie ist ohne weiteres Zutun falsch, weil sie viel mehr zulässt, als beabsichtigt ist. Damit nur der Aufgabenstellung gemäße Formeln bearbeitet werden können, muss dafür Sorge getragen werden, dass Operanden und Operator nur die gewünschten Werte annehmen können. Und dann ist die Frage, was weniger (Erstellungs- und Pflege-)Aufwand wird: das switch oder die allumfassende Prüfung.
dedlfix.