Make processAnswer more efficient

Insert into array at random index instead of randomising whole array
This commit is contained in:
2021-11-27 16:44:33 +00:00
parent cd9c29de39
commit 182da6a047

View File

@@ -634,11 +634,20 @@ exports.processAnswer = functions.https.onCall((data, context) => {
returnData.progress = ++docData.progress;
docData.incorrect.push(currentVocab);
docData.questions.push(currentVocab);
const doneQuestions = docData.questions.slice(0, docData.progress);
const notDoneQuestions = docData.questions.slice(docData.progress);
docData.current_correct = [];
docData.questions = doneQuestions.concat(shuffleArray(notDoneQuestions));
if (docData.questions.length > docData.progress) {
docData.questions.splice(
Math.floor(
Math.random() * (
docData.questions.length - docData.progress
)
) + docData.progress + 1,
0,
currentVocab
);
} else {
docData.questions.push(currentVocab);
}
returnData.totalQuestions = docData.questions.length;
returnData.totalIncorrect = docData.incorrect.length;