• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

mehrere gleiche Werte überprüfen

jumbo125

Mitglied
ich hätte da mal eine Frage, ich habe eine function welche mehreremale durchgeführt wird(jedes mal mit anderen parametern, klar...). in dieser Function sind mehrere If Anweisungen(3-4). falls bei einer etwas nicht passt, wird return "false" ausgeführt.
das ergebnius schaut dann so aus:
Code:
var check = meinefunction(blabla);
var check1 = meinefunction(udgfjh);
var check2 = meinefunction(xyzz);
ect.


anschließend soll etwas ausgeführt werden, wenn alle functionsaufrufe mit false endeten.

Code:
if(check == "false" && check1 == "false" ect.)
alert("alles falsch");

wie kann man das "schöner" schreiben? das schaut jetzt nich so schlimm aus, aber bei check9 ist die if abfrage schon recht lange.

eine möglichkeit, welche mir einfällt, wäre ein Array zu erstellen und den functions return dort hineinzuschreiben.
Angenommen dioe function endet mit return übergibt sie den wert "false". Endet sie ohne return false, übergibt sie nicht. daher wäre die Variable undefinend.
das wäre dann check.push(meinefunction),
das array würde dann so aussehen [0] -> false [1] -> false
nun würde es reichen, abzufragen obv das array auch einen anderen Wert enthält als false.
danke
 
Werbung:
Du kannst die Abfrage in ein array lesen also check[1] = ...
Und dann zum prüfen ob alle false sind mit einer Schleife arbeiten und automatisch alle prüfen...
 
Ich nutze bei sowas gerne einfach einen Zähler. Die Funktion gibt 0 oder 1 zurück, das ganze wird in einer Variable addiert und am Ende prüfst du dann, ob die Variable 0 bzw. != 0 ist und führst die entsprechende Funktion aus oder eben nicht.
 
Werbung:
Ich würde eher die Parameter in ein Array schreiben und dieses in einer Schleife abarbeiten:
Code:
var params = [gqh, qoitg, hjwg, etc.];
var result = false, i;
for (i = 0; i < params.length; i++) if (meinefunction(params[i]) == "true") result = true;
if (result == false) alert("alles falsch");
Dann erspart man sich, die vielen Funktionsaufrufe hinschreiben zu müssen und wenn sich mal etwas ändert, braucht man nur das Array zu ändern und der Rest läuft automatisch. BTW: Ich bevorzuge es, die Werte true und false von Boolean statt der gleichlautenden Strings zu verwenden.
 
Zuletzt bearbeitet von einem Moderator:
You will see your query within the array therefore study examine [ 1 ] =...
Then to check on whether or not each one is bogus make use of a hook as well as immediately analyze all...

_Edwordstephen_
 
Wie wäre es so:
Code:
if ( !meinefunction(param) &&
      !meinefunction(param2) &&
      !meinefunction(param3) &&
      .... ) {
         alert("alles falsch");
       }

MfG
 
Werbung:
szapi hatte schon recht, aber es reicht schon so etwas:
if (!(check + check1 + check2)) ...
das funktioniert, weil javascript dynamisch typisiert ist (booleans in ints gecastet sind 0 für false und 1 für true).
Deshalb funktioniert auch deine grauslige abfrage check == "true".
 
Leider funktionieren die letzten beiden Lösungen das nicht bei dem Beispiel, was der TO gepostet hat, denn er verwendet Strings für true und false.
Ist ja schön, dass sich so viele um dieses Thema bemühen, aber von dem TO ist nichts mehr zu sehen, anscheinend hat er das Interesse verloren.
 
Zurück
Oben