NEWS
[gelöst]getState auf Variablentyp object: wie gezielt auslesen?
-
Hi,
ich habe mit setState eine Variable vom Typ Object angelegt (ich nenne es mal so, damit's keine Verwechslung auf ein Device gibt).
var meine_tabelle = { '1': "#40000000", '2': "#40000000", '3': "#40000000", '4': "#40000000", '5': "#40030000", '6': "#40030000", '7': "#90040000", '8': "#442c0000", '9': "#225b0600", '10': "#225b0620", '11': "#225b0600", '12': "#225b0600", '13': "#225b0600", '14': "#225b0600", '15': "#225b0600", '16': "#225b0600", '17': "#225b0600", '18': "#ff360010", '19': "#ff000000", '20': "#ff000000", '21': "#ff000000", '22': "#ff000000", '23': "#ff000000", '0': "#50000000", }; createState("javascript.0.tabellenbank", meine_tabelle, { type: 'object', name: 'Ich bin ein Objekt' });
Geht auch:
Auch wenn es in der allgemeinen Übersicht leer aussieht:
Wie kann ich jetzt aber dieses Objekt gezielt auslesen? Also z. B. nur die Bankwerte aus 6 (#40030000).
Schreibweisen wie
getState("javascript.0.tabellenbank[6]").val; getState("javascript.0.tabellenbank[6]"); getState("javascript.0.tabellenbank").[6]; ````usw. sehen nicht nur komisch aus - sie funktionieren auch nicht. Danke für eine objectorientierte Antwort. :D So long, Fitti
-
Das funktioniert so nicht. Du hast die Tabelle unter obj.common erstellt. Möchte man ein Objekt per setState() übergeben, muss man es in einen JSON-String wandeln und beim zurücklesen mit JSON.parse wieder in ein Objekt wandeln.
var meine_tabelle = { '1': "#40000000", '2': "#40000000", '3': "#40000000", '4': "#40000000", '5': "#40030000", '6': "#40030000", '7': "#90040000", '8': "#442c0000", '9': "#225b0600", '10': "#225b0620", '11': "#225b0600", '12': "#225b0600", '13': "#225b0600", '14': "#225b0600", '15': "#225b0600", '16': "#225b0600", '17': "#225b0600", '18': "#ff360010", '19': "#ff000000", '20': "#ff000000", '21': "#ff000000", '22': "#ff000000", '23': "#ff000000", '0': "#50000000", }; createState("tabellenbank", JSON.stringify(meine_tabelle), { type: 'string', name: 'Ich bin ein Objekt' });
Auslesen:
var obj = JSON.parse(getState("tabellenbank").val); var wert6 = obj.6; // oder obj['6']
-
Danke, das hat mir sehr geholfen.
Warum ich die Tabelle unter obj.common erstellt habe erschließt sich mir nicht - auch finde ich nirgends dieses Objekt. Wahrscheinlich ist das was internes?
Die Schreibweise var wert6 = obj.6; wollte er partout nicht. "a Leading decimal Points könnte mit einem Punkt verwechselt werden…."
Egal, mittels wert6 = obj[6]; geht es sorgenfrei.
Also Danke nochmals!
Fitti