Rolf B: Schleife in einer Javascript funktion

Beitrag lesen

Hallo Franz,

Du scheinst zu glauben, dass eine Schleife die darin befindlichen Codestücke einfach aneinander klebt. Nein. Eine Schleife führt dazu, dass die im Schleifenrumpf befindlichen Anweisungen mehrfach ausgeführt werden. Deshalb muss jeder einzelne Befehl im Rumpf in sich vollständig sein.

Wenn Du Werte in einer Schleife aufsummieren willst, musst Du eine Variable haben, in der Du summierst. Die setzt Du erstmal auf 0, und pro Durchlauf wird ein Summand hinzugerechnet. FeldWert8 muss dabei nicht extra behandelt werden.

let summe=0;
for (let i=1; i<=8; i++) {
   summe = summe + getInputAsFloat(document.formular1["FeldWert"+i]);
}

wobei es für summe = summe + wert; noch eine Kurzschreibweise gibt: summe += wert;

let summe=0;
for (let i=1; i<=8; i++) {
   summe += getInputAsFloat(document.formular1["FeldWert"+i]);
}

Was ich eben zu erwähnen vergaß: Der Plus-Operator in den eckigen Klammern kratzt sich auch hier am Kopf. Du addierst ja einen String und eine Zahl. Auch hier muss eine Angleichung der Typen erfolgen, und das wird kompliziert durch den Umstand, dass das Plus ein Chamäleon ist. String plus String verkettet, und Zahl plus Zahl addiert. Ganz übel wäre sowas wie "2"+2 - da gibt's die Wahl zwischen der Zahl 4 und dem String "22".

Das Plus addiert nur dann, wenn beide Operanden „numerisch genug“ sind. Dabei werden nur Typen betrachtet, keine Werte. "2" ist ein String, in dem zufällig etwas steht was in eine Zahl konvertiert werden kann - die mögliche Konvertierung wird nicht beachtet. Das würde zu viel Zeit kosten. JavaScript betrachtet null, undefined und die booleschen Werte false und true als „numerisch genug“, alles andere (Strings, Arrays, Objekte) führt dazu, dass die Operanden in Strings verwandelt und verkettet werden. 2+"2" ergibt darum "22" und "FeldWert"+j wird zu "FeldWert1".

Ich müsste dazu wirklich mal was ins Wiki schreiben, aber ich weiß nicht so genau, wo es passt und ob ich übersehe, dass es das schon gibt. Und ich müsste Zeit dafür finden 🤓

Rolf

--
sumpsi - posui - obstruxi
0 59

Schleife in einer Javascript funktion

Franz
  • javascript
  1. 1
    Tabellenkalk
    1. 0
      Franz
      1. 0
        Tabellenkalk
        1. 0
          Franz
          1. 0
            Rolf B
  2. 2
    Rolf B
    1. 0
      Franz
      1. 1
        JürgenB
        1. 0
          Rolf B
          1. 0
            JürgenB
          2. 0
            Tabellenkalk
      2. 1
        Rolf B
        1. 0
          Franz
          1. 0
            Rolf B
            1. 0
              Franz
              1. 0
                Rolf B
                1. 0
                  Franz
                  1. 0

                    Wert(e) aus function speichern für andere function vorbehalten und wiederverwenden

                    Franz
                    1. 0
                      Der Martin
                      1. 0
                        Rolf B
                    2. 1
                      Rolf B
                      1. 0
                        Franz
                        1. 0
                          Rolf B
                      2. 0

                        Summenzuweisung wird nicht ausgeführt

                        Franz
                        1. 0
                          Rolf B
                          1. 0
                            Franz
                            1. 0
                              Rolf B
                              1. 0

                                Summenzuweisung wird nicht ausgeführt, wenn INPUT Felder nicht übergen werden

                                Franz
                                1. 0
                                  Tabellenkalk
                                2. 0
                                  Der Martin
                                3. 0
                                  Rolf B
                                  1. 0
                                    Franz
                                    1. 0
                                      Rolf B
                                      1. 0
                                        Franz
                                        1. 0
                                          Rolf B
                                          1. 0
                                            Felix Riesterer
                                            1. 0
                                              Rolf B
                                              1. 0
                                                Felix Riesterer
                                                1. 0
                                                  Rolf B
                                          2. 0
                                            Franz
                                            1. 0
                                              Rolf B
                                              1. 0
                                                Franz
                                                1. 1
                                                  Rolf B
                                                  1. 0
                                                    Franz
                            2. 0
                              Rolf B
                              1. 0
                                Franz
                                1. 0
                                  Rolf B
                                  1. 0
                                    Franz
                                    1. 0
                                      Rolf B
                                      1. 0

                                        function setOptionalValue

                                        Franz
                                        1. 0
                                          Rolf B
                                          1. 0
                                            Franz
                                            1. 0
                                              Rolf B
                                    2. 0
                                      Matthias Scharwies
  3. 0
    Felix Riesterer
    1. 0
      Rolf B
  4. 0

    Bei fehlender Variable WIEDER Abbruch ?

    Franz
    1. 1
      Felix Riesterer