Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • 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 mit Namen als Index

NEWS

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    11
    1
    491

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    24
    1
    1.7k

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    9.6k

Array mit Namen als Index

Geplant Angeheftet Gesperrt Verschoben JavaScript
16 Beiträge 5 Kommentatoren 706 Aufrufe 5 Watching
  • Ä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.
  • SKBS Offline
    SKBS Offline
    SKB
    Developer Most Active
    schrieb am zuletzt editiert von
    #1

    Ich habe da mal eine generelle Frage:

    Normal werden Arrays ja mit nummerischen Indizes erstellt. Heute hatte ich mal den namentlichen Index ausprobiert - was soll ich sagen?
    Es würde funktionieren.

    Ist nur die Frage, ob das so gedacht ist? :D

    ... wer nicht mit der Zeit geht, geht mit der Zeit ...

    Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

    BananaJoeB OliverIOO 2 Antworten Letzte Antwort
    0
    • SKBS SKB

      Ich habe da mal eine generelle Frage:

      Normal werden Arrays ja mit nummerischen Indizes erstellt. Heute hatte ich mal den namentlichen Index ausprobiert - was soll ich sagen?
      Es würde funktionieren.

      Ist nur die Frage, ob das so gedacht ist? :D

      BananaJoeB Offline
      BananaJoeB Offline
      BananaJoe
      Most Active
      schrieb am zuletzt editiert von
      #2

      @skb Sicher das du damit nicht einfach ein Objekt erstellt hast?
      https://www.mediaevent.de/javascript/array-assoziativ.html

      Aber ja, es in JavaScript verfügbar :-) Also kannst du es nutzen.

      ioBroker@Ubuntu 24.04 LTS (VMware) für: >260 Geräte, 5 Switche, 7 AP, 9 IP-Cam, 1 NAS 42TB, 1 ESXi 15TB, 4 Proxmox 1TB, 1 Hyper-V 48TB, 14 x Echo, 5x FireTV, 5 x Tablett/Handy VIS || >=160 Tasmota/Shelly || >=95 ZigBee || PV 8.1kW / Akku 14kWh || 2x USV 750W kaskadiert || Creality CR-10 SE 3D-Drucker

      1 Antwort Letzte Antwort
      0
      • SKBS SKB

        Ich habe da mal eine generelle Frage:

        Normal werden Arrays ja mit nummerischen Indizes erstellt. Heute hatte ich mal den namentlichen Index ausprobiert - was soll ich sagen?
        Es würde funktionieren.

        Ist nur die Frage, ob das so gedacht ist? :D

        OliverIOO Offline
        OliverIOO Offline
        OliverIO
        schrieb am zuletzt editiert von OliverIO
        #3

        @skb

        technisch gesehen ist es dann kein array mehr, sondern ein objekt mit properties.

        du kannst die Anzahl der Einträge dann nicht mehr über length abfragen, sondern musst dir erst die Namen der properties als Array holen und dann zählen

        Object.keys(abc).length
        

        Meine Adapter und Widgets
        TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
        Links im Profil

        1 Antwort Letzte Antwort
        0
        • SKBS Offline
          SKBS Offline
          SKB
          Developer Most Active
          schrieb am zuletzt editiert von
          #4

          Danke für Eure Antworten.

          Also, ich nutze es wie folgt:

          let test = new Array();
          test['dieses'] = 'das';
          

          Ist das nun ein Object oder ein Array oder ganz was Anderes? :D

          ... wer nicht mit der Zeit geht, geht mit der Zeit ...

          Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

          OliverIOO AlCalzoneA 2 Antworten Letzte Antwort
          0
          • SKBS SKB

            Danke für Eure Antworten.

            Also, ich nutze es wie folgt:

            let test = new Array();
            test['dieses'] = 'das';
            

            Ist das nun ein Object oder ein Array oder ganz was Anderes? :D

            OliverIOO Offline
            OliverIOO Offline
            OliverIO
            schrieb am zuletzt editiert von OliverIO
            #5

            @skb
            Aufgrund der Inheritance ist ein Array auch ein Objekt.
            Sobald du aber ein Array wie ein Objekt behandelst ist es nur noch ein Objekt

            Das ist auf der einen Seite ein Vorteil von JavaScript
            Aber auch ein Nachteil weil es keine strenge Typisierung unterstützt

            Aus diesem Grund wurde typescript als Aufsatz auf JavaScript erfunden um die streng Typisierung auch nach JavaScript zu bringen.
            Ich glaube (ich kenn mich mit typescript nicht ganz so gut aus) in typescript würde das zu einem Fehler führen, da du ein Array wie ein Objekt behandelst.

            Wenn du nicht tiefer in die Sprachen eintauchen willst dann nimm es so das es funktioniert. Wenn du dich für mehr interessierst dann wirst du ein paar Techniken (schweinereien) kennenlernen, die man zwar nicht machen sollte aber trotzdem in JavaScript funktionieren.
            Ein Beispiel: auch eine Funktion ist ein Objekt. Und da kann ich separat Daten abspeichern. Möglich ist es, aber machen sollte man es nicht, weil nicht zukunftskompatibel

            Meine Adapter und Widgets
            TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
            Links im Profil

            SKBS 1 Antwort Letzte Antwort
            0
            • OliverIOO OliverIO

              @skb
              Aufgrund der Inheritance ist ein Array auch ein Objekt.
              Sobald du aber ein Array wie ein Objekt behandelst ist es nur noch ein Objekt

              Das ist auf der einen Seite ein Vorteil von JavaScript
              Aber auch ein Nachteil weil es keine strenge Typisierung unterstützt

              Aus diesem Grund wurde typescript als Aufsatz auf JavaScript erfunden um die streng Typisierung auch nach JavaScript zu bringen.
              Ich glaube (ich kenn mich mit typescript nicht ganz so gut aus) in typescript würde das zu einem Fehler führen, da du ein Array wie ein Objekt behandelst.

              Wenn du nicht tiefer in die Sprachen eintauchen willst dann nimm es so das es funktioniert. Wenn du dich für mehr interessierst dann wirst du ein paar Techniken (schweinereien) kennenlernen, die man zwar nicht machen sollte aber trotzdem in JavaScript funktionieren.
              Ein Beispiel: auch eine Funktion ist ein Objekt. Und da kann ich separat Daten abspeichern. Möglich ist es, aber machen sollte man es nicht, weil nicht zukunftskompatibel

              SKBS Offline
              SKBS Offline
              SKB
              Developer Most Active
              schrieb am zuletzt editiert von
              #6

              @oliverio Prima, danke für die Erklärung - leuchtet ein.

              Ich wollte einmal versuchen, einen Adapter zu bauen und dort hätte der Benutzer mehrere (oder auch wenige) Werte zum angeben.
              Damit diese dann im Verlauf bearbeitet werden, dachte ich an die Namen, da so meine Indizes "gleich" bleiben.

              Oder hättest Du hier einen anderen Vorschlag?

              Danke!

              ... wer nicht mit der Zeit geht, geht mit der Zeit ...

              Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

              OliverIOO 1 Antwort Letzte Antwort
              0
              • SKBS SKB

                @oliverio Prima, danke für die Erklärung - leuchtet ein.

                Ich wollte einmal versuchen, einen Adapter zu bauen und dort hätte der Benutzer mehrere (oder auch wenige) Werte zum angeben.
                Damit diese dann im Verlauf bearbeitet werden, dachte ich an die Namen, da so meine Indizes "gleich" bleiben.

                Oder hättest Du hier einen anderen Vorschlag?

                Danke!

                OliverIOO Offline
                OliverIOO Offline
                OliverIO
                schrieb am zuletzt editiert von
                #7

                @skb

                Hängt auch davon ab wie du die Liste der Werte nachher anzeigen lassen möchtest. Wenn du keinen numerischen Index mehr hast kann sich die Liste auch nicht mehr die Reihenfolge der Werte merken. Auch weiß ich gerade nicht, wie JavaScript mit Sonderzeichen als property Namen umgeht.
                Um flexibel und erweiterungsfähig zu sein bietet sich meist ein Array of objects an. Im jeweiligen Objekt kannst du dir dann den Namen, den Wert und ggfs. weitere Informationen zum Wert speichern.
                Für jeden Wert gibt es ein eigenes Objekt im Array

                Meine Adapter und Widgets
                TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                Links im Profil

                1 Antwort Letzte Antwort
                0
                • SKBS SKB

                  Danke für Eure Antworten.

                  Also, ich nutze es wie folgt:

                  let test = new Array();
                  test['dieses'] = 'das';
                  

                  Ist das nun ein Object oder ein Array oder ganz was Anderes? :D

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

                  @skb sagte in Array mit Namen als Index:

                  Also, ich nutze es wie folgt:

                  let test = new Array();
                  test['dieses'] = 'das';
                  

                  Ist das nun ein Object oder ein Array oder ganz was Anderes? :D

                  Sauber wäre:

                  let test = {}; // ein leeres Objekt
                  test["dieses"] = "das";
                  

                  oder direkt:

                  let test = {
                    dieses: "das"
                  };
                  

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

                  1 Antwort Letzte Antwort
                  0
                  • SKBS Offline
                    SKBS Offline
                    SKB
                    Developer Most Active
                    schrieb am zuletzt editiert von
                    #9

                    Prima, danke für die Hinweise.

                    Ich wüsste jetzt noch gerne, wenn ich einen Adapter erstelle, wie der automatisch übersetzt wird, dann eine "Verknüpfung" zum ioBroker Repository findet und dann aufgenommen wird.

                    Könnte mir dies jemand noch mitteilen?

                    Vielen Dank!

                    ... wer nicht mit der Zeit geht, geht mit der Zeit ...

                    Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

                    AlCalzoneA 1 Antwort Letzte Antwort
                    0
                    • SKBS SKB

                      Prima, danke für die Hinweise.

                      Ich wüsste jetzt noch gerne, wenn ich einen Adapter erstelle, wie der automatisch übersetzt wird, dann eine "Verknüpfung" zum ioBroker Repository findet und dann aufgenommen wird.

                      Könnte mir dies jemand noch mitteilen?

                      Vielen Dank!

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

                      @skb sagte in Array mit Namen als Index:

                      dann eine "Verknüpfung" zum ioBroker Repository findet

                      https://github.com/ioBroker/ioBroker.repositories/ lesen :)

                      wie der automatisch übersetzt wird

                      https://github.com/ioBroker/adapter-dev/#manage-translations lesen

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

                      SKBS 1 Antwort Letzte Antwort
                      1
                      • AlCalzoneA AlCalzone

                        @skb sagte in Array mit Namen als Index:

                        dann eine "Verknüpfung" zum ioBroker Repository findet

                        https://github.com/ioBroker/ioBroker.repositories/ lesen :)

                        wie der automatisch übersetzt wird

                        https://github.com/ioBroker/adapter-dev/#manage-translations lesen

                        SKBS Offline
                        SKBS Offline
                        SKB
                        Developer Most Active
                        schrieb am zuletzt editiert von
                        #11

                        @alcalzone Supi. Danke :-)

                        ... wer nicht mit der Zeit geht, geht mit der Zeit ...

                        Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

                        Ben1983B 2 Antworten Letzte Antwort
                        0
                        • SKBS SKB

                          @alcalzone Supi. Danke :-)

                          Ben1983B Offline
                          Ben1983B Offline
                          Ben1983
                          schrieb am zuletzt editiert von
                          #12

                          @skb Eigentlich hat Du nun ein Object mit array:

                          Siehe hier:

                          let arr = new Array();
                          
                          // create Property
                          arr["myProperty"] = 25;
                          
                          // Create array elements
                          arr.push("A");
                          arr.push("B");
                          for(const key in arr){
                              log(`key: ${key}, value: ${arr[key]}`);
                          }
                          

                          liefert folgenden log:

                          key: 0, value: A
                          key: 1, value: B
                          key: myProperty, value: 25
                          
                          1 Antwort Letzte Antwort
                          0
                          • SKBS SKB

                            @alcalzone Supi. Danke :-)

                            Ben1983B Offline
                            Ben1983B Offline
                            Ben1983
                            schrieb am zuletzt editiert von
                            #13

                            @skb Aber wie @AlCalzone schon geschrieben hat.
                            Wenn Du nur Namen verwenden möchtest, also properties, dann wäre am Saubersten:

                            let test = {}; // ein leeres Objekt
                            test["dieses"] = "das";
                            

                            Das hat den elegenten Charme, dass man auch so Einträge abfragen kann und nicht ein Array durchsuchen muss:

                            if(test["dies"]){
                                ....dein code
                            }
                            
                            SKBS 1 Antwort Letzte Antwort
                            0
                            • Ben1983B Ben1983

                              @skb Aber wie @AlCalzone schon geschrieben hat.
                              Wenn Du nur Namen verwenden möchtest, also properties, dann wäre am Saubersten:

                              let test = {}; // ein leeres Objekt
                              test["dieses"] = "das";
                              

                              Das hat den elegenten Charme, dass man auch so Einträge abfragen kann und nicht ein Array durchsuchen muss:

                              if(test["dies"]){
                                  ....dein code
                              }
                              
                              SKBS Offline
                              SKBS Offline
                              SKB
                              Developer Most Active
                              schrieb am zuletzt editiert von
                              #14

                              @ben1983 genau das war der Gedanke dahinter.

                              Ich wollte settings abspeichern und die alle mit index anlegen fand ich doof.

                              Daher die Frage nach den Namen.

                              Danke :-)

                              ... wer nicht mit der Zeit geht, geht mit der Zeit ...

                              Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

                              OliverIOO 1 Antwort Letzte Antwort
                              0
                              • SKBS SKB

                                @ben1983 genau das war der Gedanke dahinter.

                                Ich wollte settings abspeichern und die alle mit index anlegen fand ich doof.

                                Daher die Frage nach den Namen.

                                Danke :-)

                                OliverIOO Offline
                                OliverIOO Offline
                                OliverIO
                                schrieb am zuletzt editiert von
                                #15

                                @skb

                                Und dann gibts es noc den Dateityp Map
                                https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map

                                Meine Adapter und Widgets
                                TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
                                Links im Profil

                                SKBS 1 Antwort Letzte Antwort
                                2
                                • OliverIOO OliverIO

                                  @skb

                                  Und dann gibts es noc den Dateityp Map
                                  https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map

                                  SKBS Offline
                                  SKBS Offline
                                  SKB
                                  Developer Most Active
                                  schrieb am zuletzt editiert von
                                  #16

                                  @oliverio Danke, aber das Map mag' ich nicht so :)

                                  ... wer nicht mit der Zeit geht, geht mit der Zeit ...

                                  Aktuelle Entwicklung: Energiefluss - erweitert (https://forum.iobroker.net/topic/64734)

                                  1 Antwort Letzte Antwort
                                  0
                                  Antworten
                                  • In einem neuen Thema antworten
                                  Anmelden zum Antworten
                                  • Älteste zuerst
                                  • Neuste zuerst
                                  • Meiste Stimmen


                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  689

                                  Online

                                  32.5k

                                  Benutzer

                                  81.8k

                                  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