NEWS
[gelöst]js-typeof-befehl - was ist falsch daran?
-
hätte frage zm typeof befehl
warum wird dieser datenpunkt nicht als type string erkannt?
if(typeof val1 === "string" && !val1.includes('span') && !val1.includes('class')) ...wenn ich den inhalt in z.b aaa ändere funktioniert es!?
mein datenpunkt:

der inhalt (html-code):
<table><tr><td class="getprocessswap1" >9192kB  </td><td>/usr/bin/node</td></tr><tr><td class="getprocessswap1" >5088kB  </td><td>/usr/bin/node</td></tr><tr><td class="getprocessswap1" >2912kB  </td><td>/usr/sbin/nmbd</td></tr><tr><td class="getprocessswap1" >2061kB  </td><td>/usr/sbin/smbd</td></tr><tr><td class="getprocessswap1" >1863kB  </td><td>/usr/sbin/smbd</td></tr><tr><td class="getprocessswap1" >1829kB  </td><td>/usr/sbin/smbd</td></tr><tr><td class="getprocessswap1" >1805kB  </td><td>/usr/sbin/smbd</td></tr><tr><td class="getprocessswap1" >1688kB  </td><td>/sbin/dhclient</td></tr><tr><td class="getprocessswap1" >1304kB  </td><td>/usr/sbin/sshd</td></tr><tr><td class="getprocessswap1" >1285kB  </td><td>/usr/sbin/smbd</td></tr><tr><td class="getprocessswap1" >1267kB  </td><td>/usr/sbin/smbd</td></tr><tr><td class="getprocessswap1" >1216kB  </td><td>/lib/systemd/systemd</td></tr><tr><td class="getprocessswap1" >1120kB  </td><td>/usr/bin/redis-server</td></tr><tr><td class="getprocessswap1" >724kB  </td><td>/lib/systemd/systemd-journald</td></tr><tr><td class="getprocessswap1" >712kB  </td><td>/lib/systemd/systemd-logind</td></tr><tr><td class="getprocessswap1" >616kB  </td><td>/usr/sbin/rsyslogd</td></tr><tr><td class="getprocessswap1" >552kB  </td><td>/usr/bin/dbus-daemon</td></tr><tr><td class="getprocessswap1" >504kB  </td><td>/usr/bin/node</td></tr><tr><td class="getprocessswap1" >368kB  </td><td>/usr/sbin/cron</td></tr><tr><td class="getprocessswap1" >280kB  </td><td>/sbin/agetty</td></tr><tr><td class="getprocessswap1" >280kB  </td><td>/sbin/agetty</td></tr><tr><td class="getprocessswap1" >72kB  </td><td>/usr/sbin/cron</td></tr><t/able> -
hätte frage zm typeof befehl
warum wird dieser datenpunkt nicht als type string erkannt?
if(typeof val1 === "string" && !val1.includes('span') && !val1.includes('class')) ...wenn ich den inhalt in z.b aaa ändere funktioniert es!?
mein datenpunkt:

der inhalt (html-code):
<table><tr><td class="getprocessswap1" >9192kB  </td><td>/usr/bin/node</td></tr><tr><td class="getprocessswap1" >5088kB  </td><td>/usr/bin/node</td></tr><tr><td class="getprocessswap1" >2912kB  </td><td>/usr/sbin/nmbd</td></tr><tr><td class="getprocessswap1" >2061kB  </td><td>/usr/sbin/smbd</td></tr><tr><td class="getprocessswap1" >1863kB  </td><td>/usr/sbin/smbd</td></tr><tr><td class="getprocessswap1" >1829kB  </td><td>/usr/sbin/smbd</td></tr><tr><td class="getprocessswap1" >1805kB  </td><td>/usr/sbin/smbd</td></tr><tr><td class="getprocessswap1" >1688kB  </td><td>/sbin/dhclient</td></tr><tr><td class="getprocessswap1" >1304kB  </td><td>/usr/sbin/sshd</td></tr><tr><td class="getprocessswap1" >1285kB  </td><td>/usr/sbin/smbd</td></tr><tr><td class="getprocessswap1" >1267kB  </td><td>/usr/sbin/smbd</td></tr><tr><td class="getprocessswap1" >1216kB  </td><td>/lib/systemd/systemd</td></tr><tr><td class="getprocessswap1" >1120kB  </td><td>/usr/bin/redis-server</td></tr><tr><td class="getprocessswap1" >724kB  </td><td>/lib/systemd/systemd-journald</td></tr><tr><td class="getprocessswap1" >712kB  </td><td>/lib/systemd/systemd-logind</td></tr><tr><td class="getprocessswap1" >616kB  </td><td>/usr/sbin/rsyslogd</td></tr><tr><td class="getprocessswap1" >552kB  </td><td>/usr/bin/dbus-daemon</td></tr><tr><td class="getprocessswap1" >504kB  </td><td>/usr/bin/node</td></tr><tr><td class="getprocessswap1" >368kB  </td><td>/usr/sbin/cron</td></tr><tr><td class="getprocessswap1" >280kB  </td><td>/sbin/agetty</td></tr><tr><td class="getprocessswap1" >280kB  </td><td>/sbin/agetty</td></tr><tr><td class="getprocessswap1" >72kB  </td><td>/usr/sbin/cron</td></tr><t/able>@liv-in-sky sagte in js-typeof-befehl - was ist falsch daran?:
warum wird dieser datenpunkt nicht als type string erkannt?
Wo ist
val1definiert? Woran machst du fest, dass der Datenpunkt kein String ist? -
@liv-in-sky sagte in js-typeof-befehl - was ist falsch daran?:
warum wird dieser datenpunkt nicht als type string erkannt?
Wo ist
val1definiert? Woran machst du fest, dass der Datenpunkt kein String ist?@AlCalzone weil ich es logge aber zum besseren verständnis der ganze teil (es handelt sich um ein geändertes script zu auslesen der redis states)
var cacheSelectorState = $('state[state.id=javascript.0.*]'); cacheSelectorState.each(function (id, i) { if (!id.includes('scriptEnabled') && !id.includes('scriptProblem') && !id.includes('Log-Script') && !id.includes('Ereignisliste') && !id.includes('GETPROCESS') ){ var val1 = getState(id).val; if (val1 == null ) {log(id + " hat keinen state");} else {var zk = "setState('"+id+"', "+val1 +");\n"; if(typeof val1 === "string" && !val1.includes('span') && !val1.includes('class')) { zk = "setState('"+id+"', '"+val1+"');\n"; log(id + " -- " + val1 + " ----------- " + val1.includes('span')); fs.appendFileSync(datei + logdate + "-"+ logtime + ".txt", zk);} else { log("KEIN STRING " +id + " -- " + val1); fs.appendFileSync(datei + logdate + "-"+ logtime + ".txt", zk);} };} });wie erwähnt - steht nur ein kleiner text drin wird es als string erkannt
ich wollte gerne die html einträge nicht im ergebnis haben, deashalb versuche ich span und class zu finden und nicht zu schreiben
-
Das müsste eigentlich genau so funktionieren. Gebe doch mal für den State bei dem der Fehler (?) auftritt den Typ im Log aus:
if (id === "dein-problematischer-state") { var val1 = getState(id).val; log(typeof val1); }@AlCalzone habe es mal so versucht - jetzt scheint es zu gehen - habe abfragen getrennt
var cacheSelectorState = $('state[state.id=controll-own.0.*]'); cacheSelectorState.each(function (id, i) { var val1 = getState(id).val; if (val1 == null ) {log(id + " hat keinen state");} else {var zk = "setState('"+id+"', "+val1 +");\n"; /* if(typeof val1 === "string" ) {*/ /*if( val1.indexOf('bespiel') == -1 && val1.indexOf('class') == -1) { && ! val1.includes('beispiel') && ! val1.includes('class') */ if( typeof val1 === "string") { zk = "setState('"+id+"', '"+val1+"');\n"; log(id + " -- " + val1 + " ----------- " + val1.includes('span')); if (val1.includes('span') || val1.includes('class')) {log("------------------------------------------------------------- span oder classn enthalten "+ id);} else { fs.appendFileSync(datei + "-controll-own0-" + logdate + "-"+ logtime + ".txt", zk);}} else { log("KEIN STRING " +id + " -- " + val1); fs.appendFileSync(datei + "-controll-own0-" + logdate + "-"+ logtime + ".txt", zk);} }; });irgendwie habe ich da was falsches gemacht?
f(typeof val1 === "string" && !val1.includes('span') && !val1.includes('class')
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