Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. Array auslesen (gelöst)

    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

    Array auslesen (gelöst)

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

      Hallo Zusammen,

      ich habe eine Frage zum Auslesen von arrays.

      Hier mein Testscript:

      var test;
      for ( var a = 0 ; a < 3 ; a++ ) {
          test=[];
              for (var b = 0 ; b < 3 ; b++ ) {
                  test[a]=[];
                  test[a][b] = "Testtext";
                  log("a="+a+" - b="+b+" - Inhalt="+test[a][b]);
                  log("festgelegt:"+test[0][0]);
              }
      }
      

      Ich versuche ein zweidimensionales Array auszulesen. Der Einfachheit halber schreibe ich überall den gleichen Inhalt "Testtext" in das array.

      Wenn ich es aufführe kommt folgendes im log:

      2:47:59.454	info	javascript.3 (14748) Stop script script.js.8-Testing.Skript_1
      12:47:59.462	info	javascript.3 (14748) Start javascript script.js.8-Testing.Skript_1
      12:47:59.469	info	javascript.3 (14748) script.js.8-Testing.Skript_1: a=0 - b=0 - Inhalt=Testtext
      12:47:59.469	info	javascript.3 (14748) script.js.8-Testing.Skript_1: festgelegt:Testtext
      12:47:59.469	info	javascript.3 (14748) script.js.8-Testing.Skript_1: a=0 - b=1 - Inhalt=Testtext
      12:47:59.469	info	javascript.3 (14748) script.js.8-Testing.Skript_1: festgelegt:undefined
      12:47:59.469	info	javascript.3 (14748) script.js.8-Testing.Skript_1: a=0 - b=2 - Inhalt=Testtext
      12:47:59.469	info	javascript.3 (14748) script.js.8-Testing.Skript_1: festgelegt:undefined
      12:47:59.469	info	javascript.3 (14748) script.js.8-Testing.Skript_1: a=1 - b=0 - Inhalt=Testtext
      12:47:59.470	info	javascript.3 (14748) script.js.8-Testing.Skript_1: registered 0 subscriptions and 1 schedule
      12:47:59.470	error	javascript.3 (14748) script.js.8-Testing.Skript_1: TypeError: Cannot read property '0' of undefined
      12:47:59.470	error	javascript.3 (14748) at script.js.8-Testing.Skript_1:8:38
      12:47:59.470	error	javascript.3 (14748) at script.js.8-Testing.Skript_1:13:3
      

      Solange die Variablen a und b als Index bei der Ausgabe benutzt (Script Zeile 7) wird funktioniert auch alles wie erwartet.
      Meine Erwartung ist eigentlich, dass ich bei der Ausgabe des festgelegten Zeigers [0][0] auf das Array (Script Zeile 8 ) jedes mal "Testtext" ausgegeben wird. Das funktioniert aber nur, wenn in den Schleifen a und b auch tatsächlich 0 sind. Sobald a oder b nicht mehr 0 sind ist der Inhalt des festgelegten Wertes "undefined" (Log Zeilen 6 und 8).

      Wo habe ich denn hier den Denkfehler?

      Danke und Grüße,
      Balu

      A AlCalzone 2 Replies Last reply Reply Quote 0
      • A
        Ahnungsbefreit @Balu1973 last edited by

        @balu1973 Vielleicht habe ich auch einen Denkfehler, aber durch den "Reset" der Variablen test in Zeile 3 und 5 durch setzen auf [] ist der Inhalt doch wirklich undefined, oder?

        1 Reply Last reply Reply Quote 1
        • AlCalzone
          AlCalzone Developer @Balu1973 last edited by

          @balu1973 In Zeile 5 überschreibst du die zweite Dimension des Arrays bei jedem Durchlauf mit einem leeren Array.
          Ebenso überschreibst du in Zeile 3 für jeden Durchlauf das äußere Array mit einem leeren. So wäre es richtig:

          var test = []; // HIER!
          for ( var a = 0 ; a < 3 ; a++ ) {
              test[a]=[]; // HIER!
                  for (var b = 0 ; b < 3 ; b++ ) {
                      test[a][b] = "Testtext";
                      log("a="+a+" - b="+b+" - Inhalt="+test[a][b]);
                      log("festgelegt:"+test[0][0]);
                  }
          }
          
          B 1 Reply Last reply Reply Quote 1
          • B
            Balu1973 @AlCalzone last edited by

            Oh Mann.... Ihr hab natürlich Recht. Da war ich irgendwie vollblind.
            Danke Euch beiden!!!

            Grüße,
            Balu

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

            Support us

            ioBroker
            Community Adapters
            Donate

            693
            Online

            31.8k
            Users

            80.0k
            Topics

            1.3m
            Posts

            3
            4
            312
            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