2017-09-25 4 views
-1

Ok, also bin ich ein bisschen neu für die ganze JavaScript-Sache, aber ich habe gerade etwas versucht
Eine Art von Ja/Nein Quiz Dings und ich möchte bestimmte Fragen und Sachen zu überspringen

Ich habe folgendes gefunden, aber das ganze "weiter Q + question_nr;" funktioniert nicht so, wie ich es mir erhofft hatte. Wie soll ich das machen? :)Gehe irgendwo basierend auf einer Variablen, JavaScript

var question_nr = 1; 
 

 
Q1: 
 
function q1() { 
 
    var a1 = prompt("Wanna skip the next question?", "y/n"); 
 
switch(a1) { 
 
    case "y": 
 
     alert("k"); 
 
     question_nr = question_nr + 2; 
 
     continue Q + question_nr; 
 
     break; 
 
    case "n": 
 
     alert("oki"); 
 
     question_nr = question_nr + 1; 
 
     break; 
 
    default: 
 
     alert("please enter y or n."); 
 
     break; 
 
\t } \t 
 
} 
 

 
Q2: 
 
alert("test2"); 
 
//<insert question 2> 
 
break; 
 

 
Q3: 
 
alert("test3"); 
 
//<insert question 3> 
 
break;
<button onclick="q1()">test</button>

P. S. irgendwelche guten Seiten, um mir zu helfen, JS zu lernen, sind geschätzt, also muss ich nicht fragen (wahrscheinlich wirklich dumm) Fragen wie dieses in der Zukunft

+1

https://www.w3schools.com/js/ ist ein guter Ort, um mit Javascript zu beginnen – treeseal7

+1

Wie soll es funktionieren :) Dies sind einige gute kostenlose interaktive Lernseiten, die ideal für das Erlernen der Grundlagen sind (Sie können zahlen, um fortgeschrittenere Sachen zu lernen). https://www.codecademy.com/, http://www.khanacademy.org/cs. Sobald Sie diese Grundkurse gemeistert haben, würde ich wieder Bücher suchen. w3schools ist auch gut. – WizardCoder

+0

@WizardCoder Es soll gehen Q2, Q3, Q4, Q5 usw. basierend auf dem Wert der Variablen Frage_nr. – DerpWeasel

Antwort

0

Ich will dich nicht unterrichten, gehe zur Codeakademie, aber Wenn Sie zumindest "nicht wissen", wie Sie etwas implementieren, das so funktioniert, wie Sie es möchten, kann ich Ihnen sagen, wie Sie etwas tun können, das irgendwie in der Nähe funktioniert, wie es funktioniert hat. Hören Sie:

Sie können Ausführung Ihrer Fragen erklären (nennen wir das „goto targets“) als:

const QUESTIONS = { 
    Q1: function() { 
    someLogicThere(); 
    }, 
    Q2: function() { 
    someLogicThere(); 
    } 
}; 

wie dies in irgendeiner Weise und führen Sie es (dies einen Fehler aus, wenn Sie nicht tun Definieren Sie eine der erforderlichen Fragen):

switch(lastPrompt) { 
    case "y": 
     alert("k"); 
     question_nr = question_nr + 2; 
     QUESTIONS["Q" + question_nr](); 
     break; 
    case "n": 
     alert("oki"); 
     question_nr = question_nr + 1; 
     break; 
    default: 
     alert("please enter y or n."); 
     break; 
    } 
} 

Aber ich nehme an, dass ein schlechter Code. Sie sollten alles in IIFE/Modul verpacken und mehr html/angular/react verwenden, um dies zu organisieren.

0

Ich verstehe, dass Sie noch lernen, aber Sie sollten keine Etiketten verwenden, um dies zu tun. Das Folgende ist eine einfachere Möglichkeit, dieses Ziel zu erreichen.

(function() { 
    var questions = [ 
     'How much wood can a wood chuck chuck?', 
     'How many fish in the sea?', 
     'How does this JavaScript work?' 
    ]; 
    var index = -1; 
    window.askQuestion = function() { 
     var answer = prompt("Wanna skip the next question?", "y/n"); 
     if(answer === 'y' || answer === 'n') { 
      index = (index + 1) + (answer === 'y'); 
      if(questions[index]) { 
       alert(questions[index]); 
      } else { 
       alert("No more questions to ask."); 
       index = -1; 
      } 
     } else { 
      alert("please enter y or n."); 
     } 
    }; 
}()); 

Ein paar Dinge zu beachten. Die obige Funktion umschließt ihren Code in einer sogenannten selbst-ausführenden anonymen Funktion. Dies macht es so, dass die darin deklarierten Variablen innerhalb eines privaten Bereichs liegen. Als nächstes speichern wir Fragen innerhalb eines Arrays, wobei wir berücksichtigen, dass der Array-Index immer bei 0 beginnt. Deshalb deklarieren wir die Variable für den Index, wenn sie bei -1 beginnt. Wenn die Antwort durch den Benutzer y oder n ist, dann addieren wir eins zum Index plus wahr oder falsch, unabhängig davon, ob die Antwort y ist oder nicht. Dies erhöht den Index um 1 wenn n oder 2 wenn y. Überprüfen Sie dann, ob eine Frage zum berechneten Index existiert oder nicht. Wenn dies der Fall ist, lösen Sie die Warnung für die Frage aus oder geben Sie keine weiteren Fragen ein und setzen Sie den Index auf -1 zurück.

Verwandte Themen