NEWS
benötige Hilfe bei Funktionsaufruf
-
ich drehe mich gerade bei dieser Function im Kreis und benötige Hilfe.
Bei Anruf soll geprüft werden ob die Nummer des Anrufers in "tr-064.0.callForwarding" eingestellt wurde.
In meine Testfall "0400000", beginnt mit "040" -- sollte also mit TRUE zurückgegeben werden.Ich verstehe nicht ..
a. nicht weshalb hier "undefined" trotz Treffer zurückgegeben wird (hätte "true" erwartet) und
b. weshalb die Schleife trotz Treffer bis ende durchlaufen wird.23:18:31.654 info javascript.0 (546) script.js.TEST.test-do_while: --------------------------------- 23:18:31.658 info javascript.0 (546) script.js.TEST.test-do_while: i:5 fromNumber 040 -> 23:18:31.659 info javascript.0 (546) script.js.TEST.test-do_while: Ausgabe: undefined 23:18:31.659 info javascript.0 (546) script.js.TEST.test-do_while: ---------------------------------
log ("---------------------------------"); log ("Ausgabe: " + isCallForwarding("0400000")); log ("---------------------------------"); var objects = []; function isCallForwarding(eingehend) { $('tr-064.0.callForwarding.*').each(function (id, i) { var obj = getObject(id); var arr = obj.common.name.split(" "); if (arr[0] == "fromNumber" && arr[2] == "->") { if (eingehend.startsWith(arr[1])) { console.log("i:"+i + " " +obj.common.name); return true; } } }); };
Danke !
-
@yunakato Du hast nicht eine sondern 2 Funktionen:
Innerhalb der Funktion 'isCallForwarding' rufst du für jedes Objekt deines Selektors die eine unbenannte Inline Funktion auf. Dein Return bezieht sich nur auf die Inline Funktion.
Es gibt 2 Optionen das zu lösen:
log ("---------------------------------"); log ("Ausgabe: " + isCallForwarding("0400000")); log ("---------------------------------"); var objects = []; function isCallForwarding(eingehend) { var Result = false; $('tr-064.0.callForwarding.*').each(function (id, i) { var obj = getObject(id); var arr = obj.common.name.split(" "); if (arr[0] == "fromNumber" && arr[2] == "->") { if (eingehend.startsWith(arr[1])) { console.log("i:"+i + " " +obj.common.name); Result = true; } } }); return Result; };
log ("---------------------------------"); log ("Ausgabe: " + isCallForwarding("0400000")); log ("---------------------------------"); var objects = []; function isCallForwarding(eingehend) { const IDs = $('tr-064.0.callForwarding.*'); var I=1; for (const id of IDs) { const obj = getObject(id); const arr = obj.common.name.split(" "); if (arr[0] == "fromNumber" && arr[2] == "->") { if (eingehend.startsWith(arr[1])) { console.log("i:"+i + " " +obj.common.name); return true; } } i++ } };
A.
-
vielen Dank ! Kapiert
die beiden Beispiele haben mich einen riesen Schritt weitergebracht.
Variante 2: wäre es eventuell noch sinnvoll diesen Selektor schon am Anfang des Scripts zu 1x definieren als bei jedem Aufruf neu aufzubauen oder ist das eher unüblich? Natürlich muss man sich dann um Aktualisierung kümmern.
LG Yun
-
@yunakato sagte: sinnvoll diesen Selektor schon am Anfang des Scripts zu 1x definieren
Ja. Oder werden immer wieder Datenpunkte gelöscht und neue erstellt?
-
@paul53 sagte in benötige Hilfe bei Funktionsaufruf:
der werden immer wieder Datenpunkte gelöscht und neue erstellt?
also eher selten, vielleicht 1-2 x pro Jahr wenn ich einen Intervall benennen müsste.