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