Make processAnswer more efficient
Insert into array at random index instead of randomising whole array
This commit is contained in:
@@ -634,11 +634,20 @@ exports.processAnswer = functions.https.onCall((data, context) => {
|
|||||||
|
|
||||||
returnData.progress = ++docData.progress;
|
returnData.progress = ++docData.progress;
|
||||||
docData.incorrect.push(currentVocab);
|
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.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.totalQuestions = docData.questions.length;
|
||||||
returnData.totalIncorrect = docData.incorrect.length;
|
returnData.totalIncorrect = docData.incorrect.length;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user