ternary operator

  • Hallo, mache ein Multiple Choice Quiz. Möchte das bei falscher Aussage gleich noch das richtige Ergebis angezeigt wird. Habe es mit einem ternary operator gemacht.


    var classToApply = ausgewaehlteAntwort == aktuelleFrage.antwort ? 'correct' : 'incorrect' ;


    Wie muss ich es machen, wenn ich bei einer falschen Antwort gleichzeitig die richtige angezeigt wird?

  • Wenn du im False-Block von Ternary Operator zusätzlich eine Funktion aufrufen möchtest kannst du das mit dem Comma Operator tun.

    Dieser fügt beliebig viele Ausdrücke zusammen und gibt den letzen davon zurück.


    Das würde dann zB so aussehen.

    Code
    var classToApply = ausgewaehlteAntwort == aktuelleFrage.antwort ? 'correct') : (dasRichtigeErgebnisAusgeben(), 'incorrect') ;


    Ich rate aber ausdrücklich davon ab, in einem Ternary Operator noch eine Funktion aufzurufen, denn das führt zu extrem schwer lesbaren Code.
    Besser wäre es den Ternary Operator an dieser Stelle aufzulösen und in einen normalen if-Block zu ändern.

    So in etwa:


    Code
    var classToApply = 'correct';
    
    if (ausgewaehlteAntwort !== aktuelleFrage.antwort) {
        classToApply = 'incorrect'
        dasRichtigeErgebnisAusgeben();
    }


    Ich hoffe das hilft dir.


    PS:

    Um dir besser helfen zu können, wäre der Codeausschnitt hilfreich.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!