NEWS
Fehler beim Auslesen der Array-länge
-
Hallo zusammen,
ich habe in einem Script einen Array "monthlist" in Verwendung.
Dieser wird wie im folgenden dargestellt, erstellt:var monthlist = ["Jan","Feb","Mar","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"];
Seit der Entwicklung des Scripts ist mittlerweile schon recht viel Zeit ins Land gegangen.
Nun bin ich durch Zufall drauf gestoßen, dass es anscheinend Fehlerhaft ist.Im Script gibt es eine for-Schleife, die für jedes Element des oben erwähnten Arrays wiederholt werden soll.
Beim Auslesen der Länge des Arrays, erhalte ich aber folgende Fehlermeldung:Hat jemand eine Idee woran das liegen kann?
LG Julian
-
Manchmal zickt VSCode auch einfach nur rum.
Der Code ist ja so völlig in Ordnung.Man könnte es aber auch ein wenig anders lösen. Beide Varianten funktionieren wie gewünscht:
const monthlist = ["Jan","Feb","Mar","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"]; for (let index in monthlist) { console.log(monthlist[index]); } for (let i = 0; i < monthlist.length; i++) { console.log(monthlist[i]); }
Versuch mal, statt
var
einlet
einzusetzen.Edit
Mein VSCode zickt hier allerdings auch gar nicht rum:
-
Das "var" in "let" zu ändern hat leider nichts gebracht.
Auch beim Erstellen des Arrays habe ich versucht "const" anstatt "var" zu verwenden -> immer noch dasselbe Verhalten.Allerdings ist nun anscheinend doch irgendwas passiert
Ich bekomme nun diese Meldung: (Habe dein Beispiel in ein neues Script kopiert)Fehlen mir irgendwelche Abhängigkeiten oder ist meine Version der JS Instanz buggy?
Habe v7.4.0 installiert. -
@jwlzlawl
Die Meldung besagt, dassmonthlist
bereits an anderer Stelle deklariert wurde.Steht Dein Script etwa im Ordner "global"?
-
Das Script bei dem der Fehler auffiel liegt im Ordner "Heimsteuerung".
Das Testscript im Ordner "Testmappe".Habe aber eben in diesem Thread was gelesen.
https://forum.iobroker.net/topic/43892/gelöst-cannot-redeclare-block-scoped-variable/8Meinen Cache geleert und Browser neu gestartet. Nun ist zumindest das hier weg:
@jwlzlawl said in Fehler beim Auslesen der Array-länge:
Das "var" in "let" zu ändern hat leider nichts gebracht.
Auch beim Erstellen des Arrays habe ich versucht "const" anstatt "var" zu verwenden -> immer noch dasselbe Verhalten.Allerdings ist nun anscheinend doch irgendwas passiert
Ich bekomme nun diese Meldung: (Habe dein Beispiel in ein neues Script kopiert)Fehlen mir irgendwelche Abhängigkeiten oder ist meine Version der JS Instanz buggy?
Habe v7.4.0 installiert. -
solche Fehler kommen eher davon, das der javascript editor zu diesem zeitpunkt nicht weiß was für ein typ die variable ist.
die weitere deklaration für monthlist ist in der typescript notation. da wird dann explizit der typ deklariert (hier array of string). du musst dich entscheiden, je variable kannst du nur einmal deklarieren. wenn du das : string[] hinter monthlist aus der ersten zeile kopierst und die 2.zeile löscht, dann müsst alles super sein.der editor hat eine eigene prüfung, die unabhängig von der eigentlichen ausführung ist. daher kann es im editor schon gemeckere geben, aber die ausführung funktioniert einwandfrei.
-
@oliverio
Tatsächlich.
Ich habe das Script grade mal mit Dummywerten und Dummydatenpunkten laufen lassen.
Funktioniert alles einwandfrei. -
@oliverio sagte in Fehler beim Auslesen der Array-länge:
ups sry habt zuoft den Fehler geweselt -
@ticaki
kein Problem, kann beim footen schon mal dingen