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