Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. Array auslesen (gelöst)

NEWS

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    8
    1
    1.7k

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    10
    1
    695

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    1.2k

Array auslesen (gelöst)

Geplant Angeheftet Gesperrt Verschoben JavaScript
4 Beiträge 3 Kommentatoren 501 Aufrufe 2 Beobachtet
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • B Offline
    B Offline
    Balu1973
    schrieb am zuletzt editiert von Balu1973
    #1

    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 AlCalzoneA 2 Antworten Letzte Antwort
    0
    • B 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 Offline
      A Offline
      Ahnungsbefreit
      schrieb am zuletzt editiert von
      #2

      @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?

      Wenn meine Antwort hilfreich war, dürft Ihr das gerne durch einen "Upvote" (der kleine "^" unten rechts) zum Ausdruck bringen.

      1 Antwort Letzte Antwort
      1
      • B 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

        AlCalzoneA Offline
        AlCalzoneA Offline
        AlCalzone
        Developer
        schrieb am zuletzt editiert von
        #3

        @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]);
                }
        }
        

        Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

        B 1 Antwort Letzte Antwort
        1
        • AlCalzoneA AlCalzone

          @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 Offline
          B Offline
          Balu1973
          schrieb am zuletzt editiert von
          #4

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

          Grüße,
          Balu

          1 Antwort Letzte Antwort
          0

          Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

          Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

          Mit deinem Input könnte dieser Beitrag noch besser werden 💗

          Registrieren Anmelden
          Antworten
          • In einem neuen Thema antworten
          Anmelden zum Antworten
          • Älteste zuerst
          • Neuste zuerst
          • Meiste Stimmen


          Support us

          ioBroker
          Community Adapters
          Donate

          304

          Online

          32.9k

          Benutzer

          83.0k

          Themen

          1.3m

          Beiträge
          Community
          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
          ioBroker Community 2014-2025
          logo
          • Anmelden

          • Du hast noch kein Konto? Registrieren

          • Anmelden oder registrieren, um zu suchen
          • Erster Beitrag
            Letzter Beitrag
          0
          • Home
          • Aktuell
          • Tags
          • Ungelesen 0
          • Kategorien
          • Unreplied
          • Beliebt
          • GitHub
          • Docu
          • Hilfe