Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Variablentypen in for … loop

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Variablentypen in for … loop

    This topic has been deleted. Only users with topic management privileges can see it.
    • A
      aski71 last edited by

      Hallo zusammen,

      nochmal eine Verständnisfrage zum typecasting.

      hm_rega.11335 ist bei mir definiert als Zahl und wird auch durch typeof als solche bewertet.

      Es enthält eine Liste von Werten:

          "states": {
            "0": "Aus",
            "1": "...",
            "2": "blala",
            "3": "etc...",
            "4": "usw...",
            "5": "...",
      
      

      Diese Werte gehe ich nun in einer Schleife durch, um den passenden Match herauszufinden:

         for ( var state in activityStates.common.states) {
             if ( activityStates.common.states[state] == currentActivity ) break;
         }
         if ( getState("hm-rega.0.11335").val != state ) {
             setState("hm-rega.0.11335", state);
         }
      
      

      Jetzt hätte ich erwartet, dass der index 'state' vom Typ number ist.

      Nachdem ich nun aber die type-Warnung im Log bekommen habe, sagte mir ein typeof: Überraschung! state ist ein string.

      Die Lösung kenne ich ja inzwischen: parseInt(state,10)

      Aber kann mir jemand erklären, warum state als Indexvariable überhaupt ein string und kein integer ist?

      Danke, Alex

      1 Reply Last reply Reply Quote 0
      • paul53
        paul53 last edited by

        @aski71:

        …warum state als Indexvariable überhaupt ein string und kein integer ist? `
        Wie ich das sehe: Es ist kein Index (in ein Array), sondern das Attribut eines Objekts. Wie man im Objekt sieht, sind diese in Anführungszeichen gesetzt. Anstelle von "0" könnte z.B. auch "x" stehen.

        1 Reply Last reply Reply Quote 0
        • A
          aski71 last edited by

          Ah, danke!

          1 Reply Last reply Reply Quote 0
          • Bluefox
            Bluefox last edited by

            @aski71:

                "states": {
                  "0": "Aus",
                  "1": "...",
                  "2": "blala",
                  "3": "etc...",
                  "4": "usw...",
                  "5": "...",
            
            

            Aber kann mir jemand erklären, warum state als Indexvariable überhaupt ein string und kein integer ist?

            Danke, Alex `
            Damit es ein "number" wird, muss es so aussehen:

            {
                  0: "Aus",
                  1: "...",
                  2: "blala",
                  3: "etc...",
                  4: "usw...",
                  5: "..."
            };
            
            1 Reply Last reply Reply Quote 0
            • Homoran
              Homoran Global Moderator Administrators last edited by

              @aski71:

              hm_rega.11335 ist bei mir definiert als Zahl und wird auch durch typeof als solche bewertet.

              Es enthält eine Liste von Werten:

              Code:

              "states": {

              "0": "Aus",

              "1": "…",

              "2": "blala",

              "3": "etc...",

              "4": "usw...",

              "5": "...", `

              @Bluefox:

              Damit es ein "number" wird, muss es so aussehen:

              Code:

              {

              0: "Aus",

              1: "…",

              2: "blala",

              3: "etc...",

              4: "usw...",

              5: "..."

              }; `

              Ist das ein Fehler im hm-rega, dass der alles als String interpretiert?

              siehe meinen Post mit influxDB und andere Posts mit javascript.

              immer wieder bei rega Systemvariablen.

              ggf. hier die Ursache?

              http://forum.iobroker.net/viewtopic.php … 915#p26488

              Gruß

              Rainer

              1 Reply Last reply Reply Quote 0
              • paul53
                paul53 last edited by

                @Homoran:

                Ist das ein Fehler im hm-rega, dass der alles als String interpretiert? `
                Nein, hm-rpc macht es genauso.
                493_common_control_mode.jpg

                1 Reply Last reply Reply Quote 0
                • First post
                  Last post

                Support us

                ioBroker
                Community Adapters
                Donate

                628
                Online

                31.7k
                Users

                79.7k
                Topics

                1.3m
                Posts

                4
                6
                670
                Loading More Posts
                • Oldest to Newest
                • Newest to Oldest
                • Most Votes
                Reply
                • Reply as topic
                Log in to reply
                Community
                Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                The ioBroker Community 2014-2023
                logo