Rolf b: Alternative zu eval() für arithmetische Berechnungen

Beitrag lesen

problematische Seite

Die mathematische Operation Substraktion kenne ich nicht - ist das Rechnen mit Teilstrings? ;-)

Um die gewünschten Ergebniseigenschaften zu erhalten, wirst Du bei Disvision und Substraktion nicht a und b zufällig bestimmen müssen, sondern b und erwartet, und a daraus rückrechnen. D.h. dein Rückgabeobjekt muss erweitert werden, so dass es auch die Operanden enthält. Ob du die rand() Aufrufe dann auch in die Methoden verlegst, oder ob Du a und b nach wie vor übergibst, ist wohl Geschmackssache

Den Ansatz mit opMap.keys() hatte ich zuerst auch (naja, eigentlich nicht, ich war auf getOwnPropertyNames verfallen, was in diesem Fall zum gleichen Ergebnis geführt hätte; aber keys() ist natürlich sinnvoller). Problem ist nur, dass opMap.keys() auch 'random' enthält, d.h. man läuft Gefahr, dass die Random-Operation sich selbst auswählt. Die Chance dafür ist natürlich gering ($$(\frac{1}{5})^k$$ für k-mal nacheinander), aber es widerstrebt mir irgendwie, korrekte Programmfunktion auf Wahrscheinlichkeiten aufzubauen bzw. eine unabsichtliche Rekursion einfach hinzunehmen. Das unit-testet sich so schlecht...

Eine Sache ist mir erst nachträglich aufgefallen: Es ist schlechter Stil, vielleicht sogar ein Bug, dass die Methoden in opMap sich auf die Variable beziehen, in der ihr Objekt gespeichert ist. Statt dessen sollten sie this verwenden.

Rolf

0 52

Alternative zu eval() für arithmetische Berechnungen

Matthias Scharwies
  • javascript
  1. 0
    Gunnar Bittersmann
    1. 1
      Rolf b
      1. 1
        Felix Riesterer
        1. 1
          Gunnar Bittersmann
      2. 0
        Matthias Scharwies
        1. 2
          Rolf b
          • javascript
          • programmiertechnik
          1. 0
            Matthias Scharwies
            1. 0
              Rolf b
              1. 0
                Camping_RIDER
                • humor
                • menschelei
          2. 1
            1unitedpower
            1. 0
              Rolf b
              1. 0
                1unitedpower
                1. 0
                  Rolf b
                  1. 0
                    1unitedpower
        2. 0
          JürgenB
          1. 1
            Christian Kruse
            1. 0
              JürgenB
              1. 0
                Christian Kruse
  2. 0
    Tabellenkalk
    1. 0
      Gunnar Bittersmann
  3. 0
    pl
    1. 0
      Gunnar Bittersmann
    2. 0
      Rolf b
      1. 1
        pl
        • javascript
        • programmiertechnik
        1. 0
          TS
          1. -1
            pl
            1. 0
              TS
              1. 0
                Tabellenkalk
                1. 0
                  TS
              2. 0
                pl
                1. 0
                  TS
                  1. -2
                    pl
                    • javascript
                    • programmiertechnik
                    • zu diesem forum
                    1. 0
                      Gunnar Bittersmann
                      • zu diesem forum
  4. 1
    Matthias Apsel
    1. 0
      Matthias Scharwies
      1. 2
        JürgenB
      2. 0
        Rolf b
  5. 0
    TS
    • javascript
    • programmplanung
    1. 0

      Mathe-Quiz - Aufgabenstellung zusammengefasst

      Matthias Scharwies
      1. 0

        Mathe-Quiz - aufgabenstellung zusammengefasst

        Matthias Apsel
        1. 0
          dedlfix
          1. 0
            Matthias Apsel
          2. 0

            Mathe-Quiz - für welche Schüler?

            Matthias Scharwies
      2. 0

        Mathe-Quiz 0.3 (läuft)

        Matthias Scharwies
        1. 0
          TS
          1. 0
            Gunnar Bittersmann
            1. 0
              Tabellenkalk
              1. 0
                JürgenB
                1. 0
                  Gunnar Bittersmann
                2. 0
                  TS
        2. 0
          Tabellenkalk
          • javascript
          • programmplanung
          • rechnen