Javascript: Übergebenen value-Wert als Operator nutzen.

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!

  1. 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

    --
    Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Rind und Rindenmulch.

    1. 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

      --
      Der Unterschied zwischen Java und JavaScript ist größer als der zwischen Rat und Ratsche.

      1. danke,

        ich dachte es gäbe eine einfache Lösung. Habe dann mal dafür switch genutzt.

        1. 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.