NEWS
Array mit Namen als Index
-
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 -
@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?
Sauber wäre:
let test = {}; // ein leeres Objekt test["dieses"] = "das";
oder direkt:
let test = { dieses: "das" };
-
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!
-
@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
-
@alcalzone Supi. Danke
-
@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
-
@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 }
-
@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
-
Und dann gibts es noc den Dateityp Map
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Map -
@oliverio Danke, aber das Map mag' ich nicht so