From cf97a3ba5ef7ea573a1fced8f7ee8e854a99c3fa Mon Sep 17 00:00:00 2001 From: "Torsten Schulz (local)" Date: Tue, 20 Jan 2026 00:00:57 +0100 Subject: [PATCH] Enhance _extractVocabFromExercises method for robust input handling - Added checks to ensure the exercises parameter is an array, with console warnings for null, undefined, or non-array inputs. - Implemented logic to convert non-array objects with a length property into arrays, improving flexibility in handling various input types. - Enhanced error logging to provide clearer insights when input conversion fails, aiding in debugging and user feedback. --- frontend/src/views/social/VocabLessonView.vue | 21 ++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/frontend/src/views/social/VocabLessonView.vue b/frontend/src/views/social/VocabLessonView.vue index 8ef6250..e902640 100644 --- a/frontend/src/views/social/VocabLessonView.vue +++ b/frontend/src/views/social/VocabLessonView.vue @@ -414,9 +414,28 @@ export default { } }, _extractVocabFromExercises(exercises) { + // Sicherstellen, dass exercises ein Array ist + if (!exercises) { + console.warn('[_extractVocabFromExercises] exercises ist null/undefined:', exercises); + return []; + } + + // Konvertiere zu Array falls nötig + let exercisesArray = exercises; + if (!Array.isArray(exercises)) { + console.warn('[_extractVocabFromExercises] exercises ist kein Array, versuche zu konvertieren:', exercises); + // Falls es ein Objekt mit length ist, versuche es zu konvertieren + if (typeof exercises === 'object' && exercises.length !== undefined) { + exercisesArray = Array.from(exercises); + } else { + console.error('[_extractVocabFromExercises] Kann exercises nicht zu Array konvertieren:', exercises); + return []; + } + } + const vocabMap = new Map(); - exercises.forEach((exercise, idx) => { + exercisesArray.forEach((exercise, idx) => { try { console.log(`[importantVocab] Verarbeite Übung ${idx + 1}:`, exercise.title); // Extrahiere aus questionData