Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Gelöst: Anfänger-Frage zu Schleifen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

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

    • ioBroker goes Matter ... Matter Adapter in Stable

    Gelöst: Anfänger-Frage zu Schleifen

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

      Moin,
      ich habe eine Frage um zu lernen, wie man so etwas richtig machen würde als JS Fortgeschrittener.
      Als Beispiel nehme ich mal ein willkürliches Skript (ist nix produktives, geht mir nur ums lernen).

      if ( !existsState(WERT1 )) { createState(WERT1,'0')};
      if ( !existsState(WERT2 )) { createState(WERT2,'0')};
      if ( !existsState(WERT3 )) { createState(WERT3,'0')};
      

      Es sind praktisch immer die gleichen states die angelegt werden sollen (wenn nicht vorhanden), nur der numerische Wert des state-Namens ändert sich.
      Als Noob schreibe ich die wie oben alle untereinander, funktioniert ja, also Thema erledigt.
      Wie macht das ein Profi? Ich denke mit einer kurzen Schleife, aber wie wird so etwas aufgebaut?
      Ich habe aus anderen Projekten Schleifen, die ich mal irgendwo herauskopiert und solange angepasst habe, bis sie funktionierten, aber deren Aufbau hilft mir hier leider gerade nicht.
      Kann mir jemand kurz auf die Sprünge helfen bei der wahrscheinlich wirklichen Anfänger Frage?

      Gruß aus dem Norden

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

        @smartin sagte: Schleife, aber wie wird so etwas aufgebaut?

        Beispiel:

        const ids = ['id1','id2','id3'];
        
        for(let i = 0; i < ids.length; i++) {
            if(!existsState(ids[i])) createState(ids[i], 0, {type:'number', def:0});
        }
        
        S 1 Reply Last reply Reply Quote 2
        • S
          Smartin @paul53 last edited by

          Danke @paul53
          Das kann ich nachvollziehen und hilft mir sehr.
          Eine Frage noch dazu:

          const ids = ['id1','id2','id3'];
          

          Damit werden die verschiedenen konstanten Variablen gesetzt, schon klar.
          Wie müsste dies aussehen, wenn die States in DP geschrieben werden sollen und nicht nur temporär im Script verwendet werden?
          Zum Beispiel unter 0_userdata.0.Test

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

            @smartin sagte: Damit werden die verschiedenen konstanten Variablen gesetzt

            Nein, damit werden die Datenpunkt-IDs in ein Array eingetragen.

            @smartin sagte in Anfänger-Frage zu Schleifen:

            Beispiel unter 0_userdata.0.Test

            const ids = ['0_userdata.0.Test.DP1','0_userdata.0.Test.DP2','0_userdata.0.Test.DP3'];
            
            S 1 Reply Last reply Reply Quote 1
            • S
              Smartin @paul53 last edited by

              @paul53
              Alles klar, sehr lehrreich!
              Danke, damit ist das dann auch schon gelöst hier.

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

              Support us

              ioBroker
              Community Adapters
              Donate

              888
              Online

              31.9k
              Users

              80.1k
              Topics

              1.3m
              Posts

              2
              5
              192
              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