NEWS
[Gelöst] Werte aus Objektattributen in ein Array packen?
-
Hi zusammen,
ich probiere mich gerade mit Arrays und dem Lambda-Ausdruck ( => ) aus.
Ziel ist es, möglichst elegant in einer kurzen Zeile alle Werte aus den entsprechenden Objekten als Array zu bekommen.
Folgend mein Code:var strSelector='channel[state.id=alias.0.intern.EG.sensors.Klima.*.temperature]'; log("[Ø-Funktion.dynSelektor] Werte folgenden Selektor aus: '"+strSelektor+"'"); var aObjects = $(strSelektor); log("[Ø-Funktion.dynSelektor] Werte des Selektors:"); aResult = aObjects.each( index => getState(index).val ); log("[Ø-Funktion.dynSelektor] Ergebnisse: '"+aResult.toString()+"'"); return aResult;aObjects enthält alle Temperaturen als "array of objects" per Selektor gesammelt.
Der Objektbaum dazu:

aResult enthält aber wieder nur Objekte anstelle der konkreten Werte, die ich bei ".val" nun erwartet hätte?
geloggt wird: "[Ø-Funktion.dynSelektor] Ergebnisse: '[object Object]'"
Eigentlich hätte ich so was wie "[Ø-Funktion.dynSelektor] Ergebnisse: [ 20.71, 21.23, 20.95,23 ]" erwartet?Wo ist mein Verständnisfehler?
Ausführliches Log:
-
Hi zusammen,
ich probiere mich gerade mit Arrays und dem Lambda-Ausdruck ( => ) aus.
Ziel ist es, möglichst elegant in einer kurzen Zeile alle Werte aus den entsprechenden Objekten als Array zu bekommen.
Folgend mein Code:var strSelector='channel[state.id=alias.0.intern.EG.sensors.Klima.*.temperature]'; log("[Ø-Funktion.dynSelektor] Werte folgenden Selektor aus: '"+strSelektor+"'"); var aObjects = $(strSelektor); log("[Ø-Funktion.dynSelektor] Werte des Selektors:"); aResult = aObjects.each( index => getState(index).val ); log("[Ø-Funktion.dynSelektor] Ergebnisse: '"+aResult.toString()+"'"); return aResult;aObjects enthält alle Temperaturen als "array of objects" per Selektor gesammelt.
Der Objektbaum dazu:

aResult enthält aber wieder nur Objekte anstelle der konkreten Werte, die ich bei ".val" nun erwartet hätte?
geloggt wird: "[Ø-Funktion.dynSelektor] Ergebnisse: '[object Object]'"
Eigentlich hätte ich so was wie "[Ø-Funktion.dynSelektor] Ergebnisse: [ 20.71, 21.23, 20.95,23 ]" erwartet?Wo ist mein Verständnisfehler?
Ausführliches Log:
@iobnordlicht sagte: Ergebnisse: [ 20.71, 21.23, 20.95,23 ]" erwartet?
Wo ist das Werte-Array?
const ids = $('alias.0.intern.EG.sensors.Klima.*.temperature'); const arr = []; ids.each(function(id) { arr.push(getState(id).val); }); log('Ergebnisse: ' + JSON.stringify(arr)); -
@iobnordlicht sagte: Ergebnisse: [ 20.71, 21.23, 20.95,23 ]" erwartet?
Wo ist das Werte-Array?
const ids = $('alias.0.intern.EG.sensors.Klima.*.temperature'); const arr = []; ids.each(function(id) { arr.push(getState(id).val); }); log('Ergebnisse: ' + JSON.stringify(arr));@paul53
ich dachte hier?aResult = aObjects.each( index => getState(index).val );Danke für deine alternative Lösung, ist nur so, dass ich gerade versuche, den Pfeil zu verstehen in der Anwendung und ich dachte, das müsste so doch klappen?
-
@paul53
ich dachte hier?aResult = aObjects.each( index => getState(index).val );Danke für deine alternative Lösung, ist nur so, dass ich gerade versuche, den Pfeil zu verstehen in der Anwendung und ich dachte, das müsste so doch klappen?
@iobnordlicht sagte: ich dachte hier?
Der Selektor liefert ein Objekt mit IDs, das einem Array ähnlich, aber kein Array ist.
@iobnordlicht sagte in Elegant Werte aus Objektattributen in ein Array packen?:
versuche, den Pfeil zu verstehen
Man kann auch den Pfeil verwenden:
const ids = $('alias.0.intern.EG.sensors.Klima.*.temperature'); const arr = []; ids.each(id => { arr.push(getState(id).val); }); log('Ergebnisse: ' + JSON.stringify(arr)); -
@iobnordlicht sagte: ich dachte hier?
Der Selektor liefert ein Objekt mit IDs, das einem Array ähnlich, aber kein Array ist.
@iobnordlicht sagte in Elegant Werte aus Objektattributen in ein Array packen?:
versuche, den Pfeil zu verstehen
Man kann auch den Pfeil verwenden:
const ids = $('alias.0.intern.EG.sensors.Klima.*.temperature'); const arr = []; ids.each(id => { arr.push(getState(id).val); }); log('Ergebnisse: ' + JSON.stringify(arr));@paul53
Ok, danke. Also eine Liste und kein Array, daher mein Verständnisproblem :)
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