Ich habe einen Zweifel in einem Skript, wo ich ein Quiz bin. In meinem letzten Quiz habe ich 3 Antwortmöglichkeiten: A, B und C. Wenn die Antwort "A" ist, summiere 3 Punkte für die Option "X", 2 Punkte für die Option "Y" und 1 Punkt für die Option "Z". Wenn die Antwort "B" lautet, summieren Sie 2 Punkte für die Option "X", 3 Punkte für die Option "Y" und 1 Punkt für die Option "Z". Wenn die Antwort "C" lautet, summieren Sie 1 Punkte für die Option "X", 2 Punkte für die Option "Y" und 3 Punkte für die Option "Z".Add Wert im Array und dann True Option
Die Funktion prüft die Punkte der Optionen A, B und C und gibt die Option mit der höchsten Punktzahl zurück.
Aber ich möchte ändern:
Wenn die Antwort "A" 4 Punkte ansammelt. Wenn die Antwort "B" ist, werden 2 Punkte gesammelt. Wenn die Antwort "C" ist, werden 0 Punkte gesammelt.
Wenn die Punktsumme gleich oder kleiner als 10 ist, wird die Option "X" zurückgegeben. Wenn die Punktsumme größer als 10 und kleiner als 24 ist, wird die Option "Y" zurückgegeben. Wenn die Punktsumme größer als 24 ist, wird die Option "Z" zurückgegeben.
Code:
self.jobs = [{
title: 'Opção X',
description: 'Descrição Opção X'
}, {
title: 'Opção Y',
description: 'Descrição Opção Y'
}, {
title: 'Opção Z',
description: 'Descrição Opção Z'
}];
self.job = 9999;
self.questions = [{
text: 'Pergunta 1',
answered: false,
skipped: false,
answers: [{
text: 'A',
selected: false,
values: [3, 2, 1]
}, {
text: 'B',
selected: false,
values: [2, 3, 1]
}, {
text: 'C',
selected: false,
values: [1, 2, 3]
}]
}, {
text: 'Pergunta 2',
answered: false,
skipped: false,
answers: [{
text: 'A',
selected: false,
values: [3, 2, 1]
}, {
text: 'B',
selected: false,
values: [2, 3, 1]
}, {
text: 'C',
selected: false,
values: [1, 2, 3]
}]
}, {
text: 'Pergunta 3',
answered: false,
skipped: false,
answers: [{
text: 'A',
selected: false,
values: [3, 2, 1]
}, {
text: 'B',
selected: false,
values: [2, 3, 1]
}, {
text: 'C',
selected: false,
values: [1, 2, 3]
}]
}];
self.index = 0;
self.userAnswers = [];
self.error = false;
self.answerQuestion = function(elem) {
self.userAnswers[self.index] = elem.answer;
self.index = elem.$parent.$index + 1;
var question = elem.$parent.question;
question.answered = true;
angular.forEach(question.answers, function(answer) {
answer.selected = false;
});
elem.answer.selected = true;
};
self.changeQuestion = function(elem) {
var question = self.questions[self.index];
if (question && !question.answered)
question.skipped = true;
self.index = elem.$index;
};
self.goToResult = function() {
var question = self.questions[self.index];
if (question && !question.answered)
question.skipped = true;
self.index = self.questions.length;
}
self.viewResult = function() {
var hasError = false;
angular.forEach(self.questions, function(question) {
if (!question.answered) {
hasError = true;
question.skipped = true;
}
});
if (hasError) {
self.error = true;
$timeout(function() {
self.error = false;
}, 2000);
return false;
}
self.showQuiz = false;
var result = getResult();
self.job = result;
};
getResult = function() {
var results = [0, 0, 0];
var maior = -9999;
var iMaior = 0;
angular.forEach(self.userAnswers, function(answer) {
for (var i = 0; i < self.jobs.length; i++) {
results[i] += answer.values[i];
}
});
for (var i = 0; i < results.length; i++) {
var result = results[i];
if (result > maior) {
maior = result;
iMaior = i;
}
}
return iMaior;
};
}]);
Was haben Sie versucht? Es sieht so aus, als ob die Punkte dem "Werte" -Attribut in jeder Frage entsprechen, also können Sie diese zu "4,2,0" usw. ändern. – Polyov
Ich habe versucht A mit "values: [4, 4, 4]" . Option B auf "Werte [2, 2, 2]". C "-Werte: [0, 0, 0]". Ich kann nicht die Summe und das Ergebnis entsprechend der Bedingung zurückgeben. – Wendell
Das ist verwirrend. Eine Demo-Demo würde helfen. Auch nicht klar, wo Sie speziell ein Problem im Code selbst haben – charlietfl